在本教程中,您将创建一个无服务器 API,该 API 连接到在 Amazon VPC 中运行的 Amazon ECS 服务。Amazon VPC 之外的客户端可以使用 API 访问您的 Amazon ECS 服务。
完成本教程需要大约 1 个小时。首先,您使用 AWS CloudFormation 模板创建 Amazon VPC 和 Amazon ECS 服务。然后,您可以使用 API Gateway 控制台创建 VPC 链接。VPC 链接允许 API 网关访问在您的 Amazon VPC 中运行的 Amazon ECS 服务。接下来,您创建一个 HTTP API,该 API 使用 VPC 链接连接到您的 Amazon ECS 服务。最后,测试您的 API。
当您调用 HTTP API 时,API Gateway 会通过 VPC 链接将请求路由到您的 Amazon ECS 服务,然后从该服务返回响应。

要完成本教程,您需要一个AWS账户以及一位具有控制台访问权限的 AWS Identity and Access Management 用户。有关更多信息,请参阅 设置为使用 API Gateway。
在本教程中,您将使用 AWS Management Console。如需创建此 API 和所有相关资源的 AWS CloudFormation 模板,请参阅 template.yaml。
主题
步骤 1:创建 Amazon ECS 服务
Amazon ECS 是一项容器管理服务,可让您轻松地在 cluster 上运行、停止和管理 Docker 容器。在本教程中,您将在 Amazon ECS 管理的无服务器基础设施上运行 cluster。
下载并解压此 AWS CloudFormation 模板,这将为服务创建所有依赖项,包括 Amazon VPC。您可以使用模板创建使用 Application Load Balancer 的 Amazon ECS 服务。
创建 AWS CloudFormation 堆栈
打开 AWS CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation
。 -
选择创建堆栈,然后选择使用新资源(标准)。
-
对于指定模板,选择上传模板文件。
-
选择您下载的模板。
-
选择下一步。
-
对于堆栈名称,输入
http-api-private-integrations-tutorial
,然后选择下一步。 -
对于配置堆栈选项,请选择下一步。
-
对于功能,请确认 AWS CloudFormation 可以在您的账户中创建 IAM 资源。
-
选择提交。
AWS CloudFormation 配置 ECS 服务,这可能需要几分钟的时间。当 AWS CloudFormation 堆栈的状态为 CREATE_COMPLETE 时,您就可以继续下一步了。
步骤 2:创建 VPC 链接
VPC 链接允许 API 网关访问 Amazon VPC 中的私有资源。您可以使用 VPC 链接允许客户端通过 HTTP API 访问您的 Amazon ECS 服务。
要创建 VPC 链接
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
在主导航窗格上,选择 VPC 链接,然后选择创建。
您可能需要选择菜单图标才能打开主导航窗格。
-
对于选择 VPC 链接版本,选择 HTTP API 的 VPC 链接。
-
对于名称,请输入
private-integrations-tutorial
。 -
对于 VPC,选择已在步骤 1 中创建的 VPC。名称应该以 PrivateIntegrationsStack 开头。
-
对于子网,选择 VPC 中的两个私有子网。名字以
PrivateSubnet
结尾。 -
对于安全组,请选择以
private-integrations-tutorial
开头且描述为PrivateIntegrationsStack/PrivateIntegrationsTutorialService/Service/SecurityGroup
的组 ID。 -
选择创建。
创建 VPC 链接后,API Gateway 会配置弹性网络接口以访问您的 VPC。此过程可能耗时数分钟。同时,您可以创建 API。
步骤 3:创建 HTTP API
HTTP API 为您的 Amazon ECS 服务提供了 HTTP 端点。在此步骤中,您将创建空 API。在步骤 4 和 5 中,您配置路由和集成以连接 API 和 Amazon ECS 服务。
要创建 HTTP API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择创建 API,然后为 HTTP API 选择构建。
-
对于 API 名称,请输入
http-private-integrations-tutorial
。 -
选择下一步。
-
对于配置路由,选择下一步以跳过路由创建。稍后再创建路由。
-
查看 API Gateway 为您创建的阶段。API Gateway 创建了启用自动部署的
$default
阶段,这是本教程的最佳选择。选择下一步。 -
选择创建。
步骤 4:创建路由
路由是将传入的 API 请求发送到后端资源的一种方式。路由包含两部分:HTTP 方法和资源路径,例如 GET /items
。对于此示例 API,我们创建了一个路由。
要创建路由
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 API。
-
选择路由。
-
选择创建。
-
对于方法,选择
ANY
。 -
对于路径,请输入
/{proxy+}
。路径末尾{proxy+}
是一个贪婪型路径变量。API Gateway 将所有请求发送到您的 API 到此路由。 -
选择创建。
步骤 5:创建集成
您可以创建集成以将路由连接到后端资源。
要创建集成
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 API。
-
选择集成。
-
选择管理集成,然后选择创建。
-
对于将此集成附加到一个路由,请选择您之前创建的 ANY/{proxy+} 路由。
-
对于集成类型,选择私有资源。
-
对于集成详情,请选择手动选择。
-
对于目标服务,请选择 ALB/NLB。
-
对于负载均衡器),请选择您在步骤 1 中使用 AWS CloudFormation 模板创建的负载均衡器。其名称应当以 http-Priva 为开头。
-
对于侦听器,请选择
HTTP 80
。 -
对于 VPC 链接,请选择您在步骤 2 中创建的 VPC 链接。其名称应当为
private-integrations-tutorial
。 -
选择创建。
要验证您的路由和集成设置是否正确,请选择将集成附加到路由。控制台显示您拥有集成到 VPC 负载均衡器的 ANY /{proxy+}
路由。

现在您已经准备好测试 API 了。
步骤 6:测试您的 API
接下来,测试您的 API 以确保它正常工作。为简单起见,请使用 Web 浏览器调用 API。
要测试您的 API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 API。
-
请记下您的 API 的调用 URL。
-
在 Web 浏览器中,转到 API 的调用 URL。
完整的 URL 应类似于
https://
。abcdef123
.execute-api.us-east-2
.amazonaws.com您的浏览器向 API 发送
GET
请求。 -
验证 API 的响应是欢迎消息,告诉您应用程序正在 Amazon ECS 上运行。
如果您看到欢迎消息,则表示您成功创建了在 Amazon VPC 中运行的 Amazon ECS 服务,并使用带有 VPC 链接的 API 网关 HTTP API 访问 Amazon ECS 服务。
步骤 7:清除
为避免不必要的成本,请删除作为本教程的一部分而创建的资源。以下步骤将删除您的 VPC 链接、AWS CloudFormation 堆栈和 HTTP API。
要删除 HTTP API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
在 API 页面上,选择一个 API。选择操作,选择删除,然后确认您的选择。
要删除 VPC 链接
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 VPC 链接。
-
选择您的 VPC 链接,选择删除,然后确认您的选择。
删除 AWS CloudFormation 堆栈
打开 AWS CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation
。 -
选择您的 AWS CloudFormation 堆栈。
-
选择删除,然后确认您的选择。
接下来的步骤:通过 实现自动化AWS CloudFormation
您可以自动创建和清理本教程中涉及的所有AWS资源。如需完整的示例 AWS CloudFormation 模板,请参阅 template.yaml。