什么是 Serverless 架构
Serverless 架构是一种云原生的应用架构,它的主要特点是:
- 不需要预置服务器
- 不需要管理服务器
- 按需支付
在 Serverless 架构下,开发人员只需要编写和上传应用程序代码,无需考虑服务器的配置和管理,云厂商将自动负责应用程序的部署、伸缩和运维。
Serverless 架构适用于处理非常短暂的、无状态的请求,如事件驱动的后端服务、 RESTful APIs、Webhooks等。 通过 Serverless 架构,你可以专注于业务逻辑开发,而无需关心底层的技术实现。
什么是 API Gateway
API Gateway 是一种网关服务,它可以接收来自外部请求的信息、对其进行身份验证、授权和流量控制,然后将请求转发到后端的服务端点。在 Serverless 架构中,API Gateway 通常用于托管后端 RESTful API,因为 RESTful API 通常没有状态,可以很好地适应 Serverless 架构。
下面是如何在 Serverless 架构下使用 API Gateway 的例子。我们将使用 AWS Lambda 和 Amazon API Gateway 服务构建一个简单的 RESTful API。
步骤 1:创建 Lambda 函数
我们将创建一个 Lambda 函数作为 API 的后端服务。请按照以下步骤创建一个 Lambda 函数:
- 打开 AWS Lambda 控制台。
- 单击 "Create function" 按钮。
- 在 "Select blueprint" 页面中,选择 "microservice-http-endpoint" 蓝图。
- 在 "Configure triggers" 页面中,单击 "API Gateway" 图标。
- 在 "Security" 页面中,选择 "Open",表示未经身份验证的请求也可以访问 API。
- 在 "Review" 页面中,检查配置并单击 "Create function" 按钮。
这将创建一个名为 "lambda-example" 的 Lambda 函数。
步骤 2:创建 API Gateway
现在我们将创建 API Gateway 并将其链接到 Lambda 函数。请按照以下步骤创建一个 API Gateway:
- 打开 Amazon API Gateway 控制台。
- 单击 "Create API" 按钮。
- 选择 "REST API" 并单击 "Build" 按钮。
- 选择 "New API" 并填写 API 的名称和描述。
- 单击 "Create API" 按钮。
- 在 "Resources" 页面中,选择 "Create Resource" 并输入资源名称和描述信息。
- 选择刚刚创建的资源,并在 "Action" 菜单中选择 "Create Method"。
- 选择 "GET" 方法并单击 "Create".
- 在 "Integration Type" 下拉菜单中选择 "Lambda Function".
- 在 "Lambda Region" 下拉菜单中选择 Lambda 服务的区域。然后,在 "Lambda Function" 下拉菜单中,选择上一步中创建的 Lambda 函数。
- 单击 "Save" 按钮并确认创建。
这将创建完整的 API Gateway 并链接到 Lambda 函数。
步骤 3:测试 API
现在,我们已经创建了一个 RESTful API 服务,并将其链接到 Lambda 函数作为后端服务。现在,我们可以测试 API 是否正常工作。请按照以下步骤测试 API:
- 在 API Gateway 中选择 "Stages"。
- 选择 "Create Stage" 并创建一个名为 "prod" 的新阶段。
- 选择 "Actions" 菜单并选择 "Deploy API"。
- 选择 "prod" 阶段。
- 单击 "Deploy" 按钮。
现在,API 已经成功部署到生产环境中。您可以使用 API Gateway 指定的 URL 访问 API。确保将 URL 替换为自己的 URL。以下是测试 API 的例子:
const fetch = require('node-fetch'); const url = 'https://[your_api_gateway_url]/prod/hello'; fetch(url) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
运行上述代码将在控制台上输出以下信息:
{ "message": "Hello World!" }
总结
本文介绍了 Serverless 架构下使用 API Gateway 的实践。我们使用 AWS Lambda 和 Amazon API Gateway 服务构建了一个简单的 RESTful API 服务,并成功测试了该服务。Serverless 架构可以帮助我们专注于业务开发,而无需考虑底层的技术实现,值得开发人员深入研究和应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a3f9e548841e989406b1bd