View a markdown version of this page

在 API Gateway 中更改公有或私有 API 端点类型 - Amazon API Gateway

在 API Gateway 中更改公有或私有 API 端点类型

更改 API 端点类型要求您更新 API 的配置。您可以使用 API Gateway 控制台、AWS CLI 或适用于 API Gateway 的AWS开发工具包更改现有 API 类型。端点类型无法再次进行更改,直到当前更改完成,但您的 API 将可用。

支持以下端点类型更改:

  • 从边缘优化到区域或私有

  • 从区域到边缘优化或私有

  • 从私有到区域

您不能将私有 API 更改为边缘优化的 API。

如果您正在将公有 API 从边缘优化更改为区域(或反之),请注意边缘优化 API 可能与区域 API 具有不同的行为。例如,边缘优化的 API 删除 Content-MD5 标头。传递到后端的任意 MD5 哈希值可以表示在请求字符串参数或正文属性中。但是,区域 API 会传递此标头映射,虽然它可能会将标头名称重新映射到某个其它名称。了解区别有助于您决定如何将边缘优化的 API 更新为区域 API,或者从区域 API 更新为边缘优化的 API。

使用 API Gateway 控制台更改 API 端点类型

要更改 API 的 API 端点类型,请执行以下步骤:

将一个公有端点从区域转换为边缘优化(以及反之)
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。

  2. 选择一个 REST API。

  3. 选择 API 设置。

  4. 在 API 详细信息部分中,选择编辑。

  5. 对于 API 端点类型,选择边缘优化或区域。

  6. 选择保存更改。

  7. 重新部署您的 API,以使更改生效。

将私有端点转换为区域端点
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。

  2. 选择一个 REST API。

  3. 编辑 API 的资源策略以删除对 VPC 或 VPC 端点的任何提及,以便 API 从您的 VPC 之外以及在您的 VPC 之内进行的调用成功。

  4. 选择 API 设置。

  5. 在 API 详细信息部分中,选择编辑。

  6. 对于 API 端点类型,选择区域。

  7. 选择保存更改。

  8. 从 API 中删除资源策略。

  9. 重新部署您的 API,以使更改生效。

    由于您要将端点类型从私有迁移到区域,因此 API Gateway 会将 IP 地址类型更改为 IPv4。有关更多信息,请参阅 API Gateway 中 REST API 的 IP 地址类型。

将区域端点转换为私有端点
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。

  2. 选择一个 REST API。

  3. 创建资源策略来授予对您的 VPC 或 VPC 端点的访问权限。有关更多信息,请参阅 步骤 3:为私有 API 设置资源策略。

  4. 选择 API 设置。

  5. 在 API 详细信息部分中,选择编辑。

  6. 对于 API 端点类型,选择私有。

  7. (可选)对于 VPC 端点 ID,选择您要与私有 API 关联的 VPC 端点 ID。

  8. 选择保存更改。

  9. 重新部署您的 API,以使更改生效。

    由于您要将端点类型从区域迁移到私有,因此 API Gateway 会将 IP 地址类型更改为双堆栈。有关更多信息,请参阅 API Gateway 中 REST API 的 IP 地址类型。

使用 AWS CLI 更改 API 端点类型

使用以下 update-rest-api 命令将边缘优化的 API 更新为区域 API:

aws apigateway update-rest-api \ --rest-api-id a1b2c3 \ --patch-operations op=replace,path=/endpointConfiguration/types/EDGE,value=REGIONAL

成功的响应包含 200 OK 状态代码以及与以下类似的负载:

{ "createdDate": "2017-10-16T04:09:31Z", "description": "Your first API with Amazon API Gateway. This is a sample API that integrates via HTTP with our demo Pet Store endpoints", "endpointConfiguration": { "types": "REGIONAL" }, "id": "a1b2c3", "name": "PetStore imported as edge-optimized" }

使用以下 update-rest-api 命令将区域 API 更新为边缘优化的 API:

aws apigateway update-rest-api \ --rest-api-id a1b2c3 \ --patch-operations op=replace,path=/endpointConfiguration/types/REGIONAL,value=EDGE

由于 put-rest-api 用于更新 API 定义,因此它不适用于更新 API 端点类型。