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

教程:使用 API Gateway 私有集成构建 REST API

您可以使用私有集成创建 API Gateway API 向客户提供对您 Amazon Virtual Private Cloud (Amazon VPC) 中 HTTP/HTTPS 资源的访问。此类 VPC 资源是位于 VPC 中网络负载均衡器之后的 EC2 实例上的 HTTP/HTTPS 终端节点。网络负载均衡器封装 VPC 资源并将传入请求路由到目标资源。

客户端调用 API 时,API Gateway 通过预置的 VPC 链接连接到网络负载均衡器。VPC 链接由 VpcLink 的 API Gateway 资源封装。它负责将 API 方法请求转发到 VPC 资源,并将后端响应返回到调用方。对于 API 开发人员,VpcLink 的功能等同于集成终端节点。

要使用私有集成创建 API,您必须创建新的 VpcLink,或者选择已连接到针对所需 VPC 资源的网络负载均衡器的现有链接。您必须具有合适的权限以创建和管理 VpcLink。然后,您设置 API 方法并将其集成到 VpcLink,方法是将 HTTPHTTP_PROXY 设置为集成类型,将 VPC_LINK 设置为集成连接类型,并在集成 VpcLink 上设置 connectionId 标识符。

注意

网络负载均衡器和 API 必须归同一个Amazon账户所有。

为快速开始创建 API 以访问 VPC 资源,我们将引导您完成必需步骤,通过 API Gateway 控制台使用私有集成来构建 API。开始创建 API 之前,请执行以下操作:

  1. 创建 VPC 资源,在相同区域中您的账户下创建或选择网络负载均衡器,然后添加 EC2 实例,该实例托管了作为网络负载均衡器目标的资源。有关更多信息,请参阅 为 API Gateway 私有集成设置网络负载均衡器

  2. 授予权限,为私有集成创建 VPC 链接。有关更多信息,请参阅 授予创建 VPC 链接的权限

创建您的 VPC 资源并使用在此目标组中配置的 VPC 资源创建网络负载均衡器之后,按照以下说明创建 API,并在私有集成中通过 VpcLink 将其与 VPC 资源集成。

使用私有集成创建 API
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 如果您是第一次使用 API Gateway,您会看到一个介绍服务特征的页面。在 REST API 下,选择生成。当创建示例 API 弹出框出现时,选择确定

    如果这不是您首次使用 API Gateway,请选择创建 API。在 REST API 下,选择生成

  3. 创建边缘优化或区域性 REST API。

  4. 选择您的 API。

  5. 选择创建方法,然后执行以下操作:

    1. 对于方法类型,选择 GET

    2. 对于集成类型,选择 VPC 链接

    3. 打开 VPC 代理集成

    4. 对于 HTTP 方法,选择 GET

    5. 对于 VPC 链接,选择 [使用阶段变量],然后在下面的文本框中输入 ${stageVariables.vpcLinkId}

      在将 API 部署到阶段之后,您定义 vpcLinkId 阶段变量,并将其值设置为 VpcLink 的 ID。

    6. 对于端点 URL,输入 URL,例如 http://myApi.example.com

      此处,主机名(例如 myApi.example.com)用于设置集成请求的标头 Host

    7. 选择创建方法

      通过代理集成,已准备好部署 API。否则,您需要继续设置适当的方法响应和集成响应。

  6. 选择部署 API,然后执行以下操作:

    1. 对于阶段,选择新建阶段

    2. 对于阶段名称,输入阶段名称。

    3. (可选)对于描述,输入描述。

    4. 选择部署

  7. 阶段详细信息部分下,记下生成的调用 URL。您需要它来调用 API。执行此操作前,您必须设置 vpcLinkId 阶段变量。

  8. 阶段窗格中,选择阶段变量选项卡,然后执行以下操作:

    1. 选择管理变量,然后选择添加阶段变量

    2. 对于名称,请输入 vpcLinkId

    3. 对于,输入 VPC_LINK 的 ID,例如 gix6s7

    4. 选择保存

      使用阶段变量,您可以通过更改阶段变量值,轻松地切换到 API 的不同 VPC 链接。