Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

更改 API 终端节点类型要求您更新 API 的配置。您可以使用 API Gateway 控制台、AWS CLI、适用于 API Gateway 的 AWS 开发工具包更改现有的 API 类型。更新操作最多可能需要 60 秒才能完成。在这段时间内,您的 API 将可用,但其终端节点类型无法再次进行更改,直到当前更改完成。

支持以下终端节点类型更改:

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

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

  • 从私有到区域

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

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

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

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

将一个公有终端节点从区域转换为边缘优化(以及反之)

  1. 登录到 API Gateway 控制台并在主导航窗格中选择 APIs

  2. + Create API 下选择 API 的设置(齿轮图标)。

  3. Endpoint Configuration (终端节点配置) 下的 Endpoint Type (终端节点类型) 选项从 Edge Optimized 更改为 Regional 或从 Regional 更改为 Edge Optimized

  4. 选择保存以开始更新。

将一个私有终端节点转换为区域终端节点

  1. 登录到 API Gateway 控制台并在主导航窗格中选择 APIs

  2. + Create API 下选择 API 的设置(齿轮图标)。

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

  4. Endpoint Type (终端节点类型) 更改为 Regional

  5. 选择保存以开始更新。

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

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

使用 AWS CLI 更改 API 终端节点类型

要使用 AWS CLI 更新其 API ID 为 {api-id} 的边缘优化的 API,请按如下所示调用 update-rest-api

aws apigateway update-rest-api \ --rest-api-id {api-id} --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": "0gsnjtjck8", "name": "PetStore imported as edge-optimized" }

相反,也可以将区域 API 更新为边缘优化的 API,如下所示:

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

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