随着云计算和微服务的普及,Serverless 服务成为了前端开发者和企业建立 Web 应用的热门选择。Serverless 框架可以快速构建可扩展的应用程序,同时对于大多数应用程序来说,无服务器应用程序的成本更低,而且更容易管理。
在本文中,我们将介绍 Serverless 应用程序的开发流程以及如何将其部署到亚马逊 Web 服务(AWS)。
开始之前
在我们开始之前,让我们先确保我们拥有以下工具和资源:
- Node.js 环境
- AWS 帐户
- Serverless Node.js CLI
安装 Serverless CLI
Serverless Node.js CLI 是 Serverless 框架的命令行工具,它可以在快速构建无服务应用程序的同时,具有丰富的插件和可扩展性。
运行以下命令来全局安装 Serverless CLI:
npm install -g serverless
出于您的安全考虑,我们建议您在使用 Serverless CLI 时为其配置 AWS 凭据,以便 Serverless CLI 可以在 AWS 云中创建,修改并管理资源 。您可以按照此文档来配置凭据。
初始化 Serverless 应用程序
让我们从一个简单的应用程序开始,该应用程序将显示一个欢迎消息。首先,在命令行中切换到您要使用的目录并运行以下命令:
serverless create --template aws-nodejs --path my-service cd my-service npm init -y
这将创建一个具有 Serverless Node.js 模板的应用程序,并且命名为 my-service。 运行 npm init -y 可以创建一个新的 npm 包并将其作为您的 Serverless 应用程序的依赖项。
添加功能和依赖项
现在我们的 Serverless 应用程序就位了,让我们往其中添加一个基本的功能。在 my-server 文件夹中,在 handler.js 文件中添加以下代码:
-- -------------------- ---- ------- ---- -------- -------------------- - ----- ------- -- - ----- -------- - - ----------- ---- ----- ---------------- -------- -------- -- ------------ -- -- ------ --------- --
上述代码将创建一个处理程序回调函数,它将作为 API 网关的端点返回一条欢迎消息。
接下来,我们需要为我们的应用程序添加依赖项。在 my-service 目录中,运行以下命令以安装依赖项:
npm install --save serverless-http
配置 Serverless YAML
现在让我们将我们的 Serverless 应用程序部署到 AWS。我们将在 serverless.yml 文件中定义 AWS 资源。打开 serverless.yml 文件并添加以下内容:
-- -------------------- ---- ------- -------- ----------------- --------- ----- --- -------- ---------- ---------- ------ -------- ------------- ------- - ----- ----- - ------- --- ----- ----
上述配置使用了“hello”函数,该函数指向我们的 handler.js 文件中的 hello 处理程序。它将路径指定为 /,使用 GET 方法,并启用了跨域资源共享(CORS)。
部署 Serverless 服务
现在我们可以使用 serverless CLI 来部署我们的应用程序。在命令行中,请运行以下命令:
serverless deploy
这将在 AWS 中创建所需的资源(例如 API 网关、Lambda 函数和 IAM 角色),并将您的代码部署到 Lambda 函数中。
测试您的应用程序
运行 serverless deploy 后,CLI 将会输出 API 网关的 URL。在浏览器中请求这个 URL,您将会看到欢迎消息。
恭喜!您已经成功地使用 Serverless CLI 创建和部署了一个简单的应用程序。
结论
Serverless 应用程序是构建高可伸缩性 Web 应用程序的一种流行方式,同时可以降低成本,在管理方面具有优势。在此过程中,我们学习了 Serverless 应用程序的开发流程,并了解了如何使用 Serverless CLI 将其部署到 AWS。此外,我们还知道如何在 Serverless 中包含其他功能和插件,以增强应用程序的功能和性能。 Serverless 将是您构建下一代 Web 应用程序的理想选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66ee81896fbf960197230cc1