在过去,构建一个 Web 应用程序需要租用服务器,并基于服务器运行应用程序代码以响应用户请求。这种方式可能会导致高额的费用和管理成本。
然而,随着 Serverless 技术的出现,我们可以使用 AWS Lambda、Azure Functions、Google Cloud Functions 等无服务器平台构建应用程序并将其发布。无服务器平台提供了以事件和数据为基础的服务,可扩缩应用程序的能力,并大大减少了托管应用程序的复杂性和管理成本。
在这篇文章中,我将向你展示如何使用 Serverless 框架构建无服务器 API。我们将使用一个名为 Serverless Framework 的工具,该工具提供了能够编写,测试和文档化无服务器应用程序的一组工具和函数库。
步骤 1 - 安装 Serverless 框架
首先,让我们安装 Serverless 框架。我们使用 npm 包管理器来将其安装到本地计算机上。在你的命令行终端中,键入以下命令:
npm install -g serverless
,并等待安装完成。
步骤 2 - 创建无服务器应用程序
在我们创建无服务器应用程序之前,让我们简要了解一下 Serverless 框架的定义和组成:
- Serverless.yml:一个以 YAML 格式编写的配置文件,用于定义应用程序的服务,函数,事件等配置。
- Handler.js:应用程序的函数文件。
- Package.json:一个描述应用程序及其依赖项的文件。
现在,请打开终端并键入以下命令:
serverless create --template aws-nodejs --path my-service
该命令将为你创建一个名为 my-service
的目录,并下载一个基础模板,设置了一个基本的示例函数。我们将在此基础上构建我们的应用程序。
步骤 3 - 定义应用程序配置
现在,我们已经创建了一个新的 Serverless 服务,我们将使用 Serverless.yml 文件定义应用程序的 API 配置。以下是一个简单的示例配置:
-- -------------------- ---- ------- -------- ---------- --------- ----- --- -------- ---------- ---------- ------ -------- ------------- ------- - ----- ----- - ------- ---
在此配置中,我们指定应用程序的名称,提供商和运行时(在本例中,我们将使用 AWS 提供的 Node.js 12.x 运行时)。我们还定义了一个名为 hello
的函数,并定义了该函数将如何被触发。
这个函数将处理 http get 请求并在其响应中返回一个简单的消息。在我们的目录中,你将找到带有以下内容的 handler.js 文件:
-- -------------------- ---- ------- ---- -------- -------------------- - ----- ----- -- - ------ - ----------- ---- ----- --------------- - -------- --- ---------- ----- ---- -------- -------- --------------- ------ ------ -- ----- - -- -- --
此函数将返回一个 JSON 对象,其 body
属性中包含了一个 message
字符串和 event
对象。你可以通过将浏览器指向 http://localhost:3000/hello
来测试此函数(在你运行服务之后)。
步骤 4 - 部署应用程序
现在,我们将发布应用程序,使其成为在互联网上可用的 API 服务。
在命令行中,键入以下命令:
serverless deploy -v
该命令将连接你的 AWS 账户并使用 CloudFormation 创建必要的资源来部署我们的应用程序。当它完成之后,输出中将显示一个 URL,该 URL 表示我们刚刚发布的 API。
尝试在浏览器中打开您的新 URL!你应该可以看到你的 Serverless 应用程序返回的响应,以及任何在函数中定义的消息。
结论
在本文中,你学会了如何使用 AWS 和 Serverless 框架创建无服务器 API。每一步都有详细的解释和示例代码。如果你想学习更多关于 Serverless 和无服务器计算的话,我建议阅读 AWS、Microsoft Azure 和 Google Cloud 的文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6712470ead1e889fe203d92c