教程:利用私有集成创建 REST API
在本教程中,您将创建一个 REST API,用于连接到在 Amazon VPC 中运行的 Amazon ECS 服务。Amazon VPC 之外的客户端可以使用 API 访问您的 Amazon ECS 服务。
完成本教程需要大约 1 个小时。首先,您使用 CloudFormation 模板创建 Amazon VPC 和 Amazon ECS 服务。然后,您可以使用 API Gateway 控制台创建 VPC 链接 V2。VPC 链接允许 API 网关访问在您的 Amazon VPC 中运行的 Amazon ECS 服务。接下来,您创建一个 REST API,该 API 使用 VPC 链接 V2 连接到您的 Amazon ECS 服务。最后,测试您的 API。
当您调用 REST API 时,API Gateway 会通过 VPC 链接 V2 将请求路由到您的 Amazon ECS 服务,然后从该服务返回响应。
注意
本教程以前支持 HTTP API,现在支持使用 VPC 链接 V2 的 REST API。
要完成本教程,您需要一个AWS账户以及一位具有控制台访问权限的 AWS Identity and Access Management 用户。有关更多信息,请参阅 设置为使用 API Gateway。
步骤 1:创建 Amazon ECS 服务
Amazon ECS 是一项容器管理服务,可让您轻松地在 cluster 上运行、停止和管理 Docker 容器。在本教程中,您将在 Amazon ECS 管理的无服务器基础设施上运行 cluster。
下载并解压此 CloudFormation 模板,这将为服务创建所有依赖项,包括 Amazon VPC。您可以使用模板创建使用 Application Load Balancer 的 Amazon ECS 服务。
创建 CloudFormation 堆栈
打开 CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation
。 -
选择创建堆栈,然后选择使用新资源(标准)。
-
对于指定模板,选择上传模板文件。
-
选择您下载的模板。
-
选择下一步。
-
对于堆栈名称,输入
rest-api-private-integrations-tutorial,然后选择下一步。 -
对于配置堆栈选项,请选择下一步。
-
对于功能,请确认 CloudFormation 可以在您的账户中创建 IAM 资源。
-
选择下一步,然后选择提交。
CloudFormation 配置 ECS 服务,这可能需要几分钟的时间。当 CloudFormation 堆栈的状态为 CREATE_COMPLETE 时,您就可以继续下一步了。
步骤 2:创建 VPC 链接
VPC 链接允许 API 网关访问 Amazon VPC 中的私有资源。您可以使用 VPC 链接允许客户端通过 REST API 访问您的 Amazon ECS 服务。
要创建 VPC 链接
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
在主导航窗格上,选择 VPC 链接,然后选择创建。
您可能需要选择菜单图标才能打开主导航窗格。
-
对于选择 VPC 链接版本,选择 VPC 链接 V2。
-
对于名称,请输入
private-integrations-tutorial。 -
对于 VPC,选择已在步骤 1 中创建的 VPC。名称应以 RestApiStack 开头。
-
对于子网,选择 VPC 中的两个私有子网。名字以
PrivateSubnet结尾。 -
对于安全组,请选择以
private-integrations-tutorial开头且描述为RestApiStack/RestApiTutorialService/Service/SecurityGroup的组 ID。 -
选择创建。
创建 VPC 链接 V2 后,API Gateway 会预调配弹性网络接口以访问您的 VPC。此过程可能耗时数分钟。同时,您可以创建 API。
步骤 3:创建 REST API
REST API 为您的 Amazon ECS 服务提供了 HTTP 端点。
创建 REST API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择创建 API,然后为 REST API 选择构建。
-
对于名称,请输入
private-integration-api。 -
为 IP 地址类型选择 IPv4。
选择创建 API。
创建 API 后,您将创建一个方法。
-
选择创建方法,然后执行以下操作:
对于方法类型,选择
GET。对于集成类型,选择 VPC 链接。
打开 VPC 代理集成。
对于 HTTP 方法,选择
GET。-
对于 VPC 链接,选择您在前面的步骤中刚创建的 VPC 链接 V2。
-
对于集成目标,请输入您在步骤 1 中使用 CloudFormation 模板创建的负载均衡器。其名称应当以 rest- 开头。
-
对于端点 URL,输入
http://private-integrations-tutorial.com。该 URL 用于设置集成请求的
Host标头。在本例中,主机标头为private-integrations-tutorial。 选择创建方法。
通过代理集成,API 已准备好测试。
步骤 4:测试您的 API
接下来,测试 API 方法的调用。
要测试您的 API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 API。
选择测试选项卡。您可能需要选择右箭头按钮,以显示该选项卡。
选择测试
验证 API 的响应是欢迎消息,告诉您应用程序正在 Amazon ECS 上运行。
步骤 5:部署您的 API
接下来,部署 API。
部署 API
选择部署 API。
对于阶段,选择新建阶段。
对于阶段名称,输入
Prod。(可选)对于描述,输入描述。
选择部署。
步骤 6:调用 API
部署 API 后,即可调用它。
调用您的 API
-
在 Web 浏览器中输入调用 URL。
完整的 URL 应类似于
https://。abcd123.execute-api.us-east-2.amazonaws.com/Prod您的浏览器向 API 发送
GET请求。 -
验证 API 的响应是欢迎消息,告诉您应用程序正在 Amazon ECS 上运行。
如果您看到欢迎消息,则表示您成功创建了在 Amazon VPC 中运行的 Amazon ECS 服务,并使用了通过 VPC 链接 V2 访问 Amazon ECS 服务的 API Gateway REST API。
步骤 7:清除
为避免不必要的成本,请删除作为本教程的一部分而创建的资源。以下步骤将删除您的 VPC 链接 V2、CloudFormation 堆栈和 REST API。
要删除 REST API
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
在 API 页面上,选择一个 API。选择操作,选择删除,然后确认您的选择。
要删除 VPC 链接
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
选择 VPC 链接。
-
选择您的 VPC 链接,选择删除,然后确认您的选择。
删除 CloudFormation 堆栈
打开 CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation
。 -
选择您的 CloudFormation 堆栈。
-
选择删除,然后确认您的选择。