开始使用 API Gateway - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 API Gateway

注意

重新设计的 API Gateway 控制台体验现已推出。有关如何使用控制台创建 REST API 的教程,请参阅 开始使用 REST API 控制台

在此入门练习中,您将创建一个无服务器 API。无服务器 API 让您可以专注于应用程序,而不是花时间预置和管理服务器。本次练习可在 20 分钟内完成,并且可以使用Amazon免费套餐完成。

然后,使用 Amazon Lambda 控制台创建 Lambda 函数。接下来,使用 API Gateway 控制台创建 HTTP API。然后,调用您的 API。

注意

为简单起见,本练习使用 HTTP API。API Gateway 还支持包含更多功能的 REST API。要了解更多信息,请参阅 在 REST API 和 HTTP API 之间选择

当您调用 HTTP API 时,API Gateway 会将请求路由到您的 Lambda 函数。Lambda 运行 Lambda 函数并将响应返回 API Gateway。然后 API Gateway 会向您返回响应。

要完成本练习,您需要一个Amazon账户以及一位具有控制台访问权限的 Amazon Identity and Access Management 用户。有关更多信息,请参阅 开始使用 API Gateway 的先决条件

步骤 1:创建 Lambda 函数

将 Lambda 函数用作您的 API 后端。只有在需要时 Lambda 才运行您的代码,并且能自动扩展,从每天几个请求扩展到每秒数千个请求。

在本示例中,您可以使用 Lambda 控制台中的默认 Node.js 函数。

创建 Lambda 函数
  1. 通过以下网址登录 Lambda 控制台:https://console.aws.amazon.com/lambda

  2. 选择创建函数

  3. 对于 Function name(函数名称),请输入 my-function

  4. 选择创建函数

示例函数返回 200 响应到客户端,以及文本 Hello from Lambda!

只要函数的响应与 API Gateway 所要求的格式保持一致,您就可以修改您的 Lambda 函数。

默认的 Lambda 函数代码应类似于以下内容:

export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };

步骤 2:创建 HTTP API

接下来,创建一个 HTTP API。API Gateway 还支持 REST API 和 WebSocket API,但是 HTTP API 是本练习的最佳选择。REST API 比 HTTP API 支持更多功能,但我们在本练习中不需要这些功能。HTTP API 在设计时功能就极少,因此能够以更低的价格提供。WebSocket API 与客户端保持持久连接,以进行全双工通信,但这不是本示例所必需的。

HTTP API 为您的 Lambda 函数提供了 HTTP 终端节点。API Gateway 将请求路由到您的 Lambda 函数,然后将该函数的响应返回给客户端。

要创建 HTTP API
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 请执行下列操作之一:

    • 要创建第一个 API,对于 HTTP API,请选择构建

    • 如果您之前已经创建了 API,请选择创建 API,然后为 HTTP API 选择构建

  3. 对于集成,选择添加集成

  4. 选择 Lambda

  5. 对于 Lambda function(Lambda 函数),输入 my-function

  6. 对于 API Name (API 名称),请输入 my-http-api

  7. 选择 Next (下一步)

  8. 查看 API Gateway 为您创建的路径,然后选择下一步

  9. 查看 API Gateway 为您创建的阶段,然后选择下一步

  10. 选择创建

现在,您已经创建了一个集成了 Lambda 的 HTTP API,可以随时接收来自客户端的请求。

步骤 3:测试您的 API

接下来,测试您的 API 以确保它正常工作。为简单起见,请使用 Web 浏览器调用 API。

要测试您的 API
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 选择 API。

  3. 请记下您的 API 的调用 URL。

  4. 复制 API 的调用 URL,然后在 Web 浏览器中输入它。将 Lambda 函数的名称附加到调用您的 Lambda 函数的调用 URL 中。默认情况下,API Gateway 控制台创建与您的 Lambda 函数名称相同的路由,my-function

    完整的 URL 应类似于 https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function

    您的浏览器向 API 发送 GET 请求。

  5. 验证 API 的响应。您应该会在浏览器中看到文本 "Hello from Lambda!"

(可选)步骤 4:清理

为避免不必要的成本,请删除作为本入门练习的一部分而创建的资源。以下步骤将删除 HTTP API、Lambda 函数和相关资源。

要删除 HTTP API
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. API 页面上,选择一个 API。选择 Actions,然后选择 Delete

  3. 选择 Delete

要删除 Lambda 函数
  1. 通过以下网址登录 Lambda 控制台:https://console.aws.amazon.com/lambda

  2. 函数页面上,选择一个函数。选择 Actions,然后选择 Delete

  3. 选择 Delete

要删除 Lambda 函数的日志组
  1. 在 Amazon CloudWatch 控制台中,打开日志组页面

  2. Log groups(日志组)页面上,选择函数的日志组 (/aws/lambda/my-function)。选择 Actions (操作),然后选择 Delete log group (删除日志组)

  3. 选择 Delete

要删除 Lambda 函数的执行角色
  1. 打开‭Amazon Identity and Access Management‬控制台中的‭‬角色页面‭

  2. 选择函数的角色,例如 my-function-31exxmpl

  3. 选择删除角色

  4. 选择 Yes, delete (是,删除)

您可以使用 Amazon CloudFormation 或 Amazon SAM 自动创建和清理Amazon资源。如需示例 Amazon CloudFormation 模板,请参阅示例 Amazon CloudFormation 模板

后续步骤

在本示例中,您使用Amazon Web Services Management Console创建了一个简单的 HTTP API。该 HTTP API 调用 Lambda 函数并向客户端返回响应。

以下是继续使用 API Gateway 的后续步骤。

要从社区获取有关 Amazon API Gateway 的帮助,请参阅 API Gateway 开发论坛。当您进入此论坛时,Amazon可能会要求您登录。

要直接从Amazon获得 API Gateway 方面的帮助,请参阅Amazon支持页面中的支持选项。

另请参阅我们的常见问题 (FAQ),或者直接与我们联系