概述
Serverless框架是一个轻量级的开发框架,可以帮助我们快速构建和部署无服务器应用程序。Serverless 和 AWS Lambda、Azure Functions、Google Cloud Functions 等云服务提供商一起工作,也支持自定义的云服务。
在这篇文章中,我们将深入探讨如何使用Serverless框架来自动化部署和管理应用程序,以便您可以更快、更可靠地交付您的应用程序。
Serverless框架入门
使用Serverless框架时,我们需要先安装它。因此,我们需要使用Node.js和npm来安装。
在命令行中输入以下命令以安装Serverless框架:
npm install -g serverless
安装完成后,我们需要检查一下Serverless框架的版本。请在命令行中输入以下命令:
serverless version
您将看到以下输出:
Framework Core: 1.0.2 Plugin: 1.0.0 SDK: 1.0.0 Components: 1.0.0
如果您看到输出,就说明您已经正确安装了Serverless框架,并且准备好了使用。接下来我们将建立一个Serverless项目。
运行以下命令以创建一个新的项目:
sls create -t aws-nodejs -p my-new-service
如果您想使用其他模板,Serverless框架还提供了其他选项,例如aws-nodejs-typescript
和aws-python3
。
在执行上述命令后,将会创建一个新的目录,名为my-new-service
,其中包含了项目的模板文件。
编写Serverless应用程序
在成功创建了Serverless项目之后,我们将使用一些简单的代码来体验它。
在项目根目录下,创建一个新的文件夹src
,并在其中添加文件handler.js
:
-- -------------------- ---- ------- ---- -------- -------------------- - ------- -------- --------- -- - ----- ------- - - -------- ------ --- ---------- ----- ---------- ------------ ------ ------ -- -------------- - ----------- ---- ----- ------------------------ --- --
这个hello
函数将在我们的API接口上响应内容。
接下来,我们要在serverless.yml
文件中仔细查看serverless.yml
文件中的配置和服务和函数的定义。
-- -------------------- ---- ------- -------- -------------- --------- ----- --- -------- ---------- ---------- ------ -------- ----------------- ------- - ----- ----- ----- ------- ---
这段代码定义了我们的服务和函数。其中,service
属性是我们的服务名称;provider
属性提供了与AWS相关的信息;functions
属性定义了函数列表。
在这个示例中,我们有一个名为hello
的函数,很明显是在响应/hello
的 GET请求。我们使用handler
属性指定了每个模块退出处理程序,事件是HTTP GET请求。
部署Serverless应用程序
在本节中,我们将部署我们的应用程序,使我们的API接口可以被公开访问。
运行以下命令以部署我们的应用程序:
sls deploy
这将使Serverless框架采用由serverless.yml
文件定义的配置和文件,创建和配置AWS服务和功能,并确保公开访问这个应用程序的API。
在部署完成之后,您可以访问它,您将看到以下输出:
{ "message": "Hello AWS Serverless using Serverless Framework!", "input": {} }
您刚刚成功使用Serverless框架构建了一个完全用于API服务的无服务器应用程序,并部署了它。
Serverless框架自动化部署实践
Serverless框架的优点之一是让我们可以使用自动化部署来快速交付应用程序,以最小的努力消除定期重复的手动过程。
在这一部分中,我们将使用构建工具Travis CI实现自动化部署。
Travis对公共存储库是免费的,您可以在上面托管您的代码,以便您能够使用配置文件和脚本来自动部署你的应用程序。
为了在Travis-CI上启用自动化部署,我们需要为它提供我们的AWS密钥和其他凭证。因此,我们需要将这些敏感信息放在我们的AWS账户中。
创建 IAM 用户(默认情况下,IAM用户无法访问您的AWS帐户)。要这样做,请登录到您的AWS账户并导航到IAM管理控制台。选择
Users
,然后Add User
。只需的帐户访问类型是程序化(即无法登录到AWS控制台)。输入用户名,然后选择您要为此用户授权的Access Key ID和Secret Access Key,然后保存。在Travis CI上启用自动化部署。这在
Travis CI
->Settings
中可以进行操作。在脚本部分中,将以下内容添加到您的Travis CI配置文件中(.travis.yml
):
deploy: provider: script script: sls deploy skip_cleanup: true
现在,我们需要将我们AWS密钥添加到Travis环境变量中,以便可以访问AWS服务。在Travis CI上的仪表板中选择
More options
,然后选择Settings
。添加以下环境变量:AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
提交代码并等待部署完成。
现在,每次我们提交代码,就会在AWS上触发自动化部署过程,实现了我们的 Serverless 框架自动化部署实践。
总结
Serverless框架是一个轻量级的开发框架,可以帮助我们快速构建和部署无服务器应用程序。通过使用Serverless框架,我们可以轻松地进行自动化部署,并让交付更快、更可靠。
此外,结合Travis CI等工具,我们可以使自动化部署变得更加简便易行。
示例代码
项目源代码和配置文件可以在以下Github存储库中找到:
https://github.com/serverless/examples/tree/master/aws-node-travis-ci-serverless-framework
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/652a2b287d4982a6ebc8480e