使用 HTTP API 的私有集成 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 HTTP API 的私有集成

私有集成使您能够与 VPC 中的私有资源(如 Application Load Balancer 或基于 Amazon ECS 容器的应用程序)创建 API 集成。

您可以使用私有集成公开 VPC 中的资源,以便 VPC 外部的客户端访问。您可以使用 API Gateway 支持的任何授权方法来控制对 API 的访问。

要创建私有集成,您必须首先创建 VPC 链接。要了解有关 VPC 链接的更多信息,请参阅 为 HTTP API 使用 VPC 链接

创建 VPC 链接后,您可以设置私有集成,以连接到 Application Load Balancer、网络负载均衡器或注册到 Amazon Cloud Map 服务的资源。

要创建私有集成,所有资源必须归同一Amazon账户所有(包括负载均衡器或 Amazon Cloud Map 服务、VPC 链接和 HTTP API)。

默认情况下,私有集成流量使用 HTTP 协议。如果您要求私有集成流量使用 HTTPS,则可以指定 tlsConfig

注意

对于私有集成,API Gateway 在对后端资源的请求中包括 API 终端节点的阶段部分。例如,对 API 的 test 阶段的请求在对私有集成的请求中包含 test/route-path

使用 Application Load Balancer 或网络负载均衡器创建私有集成

在创建私有集成之前,您必须创建 VPC 链接。要了解有关 VPC 链接的更多信息,请参阅 为 HTTP API 使用 VPC 链接

要创建与 Application Load Balancer 或网络负载均衡器的私有集成,请创建 HTTP 代理集成,指定要使用的 VPC 链接,并提供负载均衡器的侦听器 ARN。

使用以下命令创建私有集成,该私有集成通过 VPC 链接连接到负载均衡器。

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65 --payload-format-version 1.0

使用 Amazon Cloud Map 服务发现创建私有集成

在创建私有集成之前,您必须创建 VPC 链接。要了解有关 VPC 链接的更多信息,请参阅 为 HTTP API 使用 VPC 链接

为了与 Amazon Cloud Map 集成,API Gateway 使用 DiscoverInstances 来识别资源。您可以使用查询参数来定位特定资源。已注册资源的属性必须包括 IP 地址和端口。API Gateway 在从 DiscoverInstances 返回的运行状况良好的资源之间分发请求。如需了解详情,请参阅 Amazon Cloud Map API 参考中的 DiscoverInstances

注意

如果您使用 Amazon ECS 填充 Amazon Cloud Map 中的条目,则必须将您的 Amazon ECS 任务配置为使用 SRV 记录。不支持“A”记录。要了解更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的配置您的服务以使用服务发现

要使用 Amazon Cloud Map 创建私有集成,请创建 HTTP 代理集成,指定要使用的 VPC 链接,并提供 Amazon Cloud Map 服务的 ARN。

使用以下命令创建私有集成,该私有集成通过 Amazon Cloud Map 服务发现来标识资源。

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:servicediscovery:us-east-2:123456789012:service/srv-id?stage=prod&deployment=green_deployment --payload-format-version 1.0