教程:利用私有集成创建 REST API - Amazon 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 必须归同一个AWS账户所有。

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

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

  2. 授予权限,为私有集成创建 VPC 链接。有关更多信息,请参阅 授予 API Gateway 创建 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 链接。