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

文档历史记录

下表列出了自 Amazon API Gateway 上一次发布以来对文档所做的重要更改。如需此文档更新的通知,您可以通过在顶部菜单面板中选择 RSS 按钮来订阅 RSS 源。

  • 上次文档更新日期:2019 年 10 月 15 日

变更 说明 日期

Amazon Kinesis Data Firehose 日志记录

添加了对将 Amazon Kinesis Data Firehose 作为访问日志记录数据的目标的支持。有关更多信息,请参阅使用 Amazon Kinesis Data Firehose 作为 API Gateway 访问日志记录的目标

October 15, 2019

用于调用私有 API 的 Route53 别名

添加了对用于调用私有 API 的其他 Route53 别名 DNS 记录的支持。有关更多信息,请参阅使用 Route53 别名访问您的私有 API

September 18, 2019

针对 WebSocket API 的基于标签的访问控制

增加了对 WebSocket API 基于标签的访问控制的支持。有关更多信息,请参阅可加标签的 API Gateway 资源

June 27, 2019

自定义域的 TLS 版本选择

增加了相应支持,可以对部署到自定义域的 API 的传输层安全性 (TLS) 选择版本。请参阅在 API Gateway 中为自定义域选择最小 TLS 版本中的说明。

June 20, 2019

针对私有 API 的 VPC 终端节点策略

增加了对通过附加终端节点策略到接口 VPC 终端节点来改进私有 API 安全性的支持。有关更多信息,请参阅在 API Gateway 中为私有 API 使用 VPC 终端节点策略

June 4, 2019

更新的文档

重新编写了 Amazon API Gateway 入门。将教程移到了 Amazon API Gateway 教程

May 29, 2019

针对 REST API 的基于标签的访问控制

增加了对 REST API 基于标签的访问控制的支持。有关更多信息,请参阅使用标签以及 IAM 策略控制对 API Gateway 资源的访问

May 23, 2019

更新的文档

重新编写了以下 6 个主题:什么是 Amazon API Gateway?教程:使用 HTTP 代理集成构建 API教程:使用三个非代理集成创建 Calc REST APIAPI Gateway 映射模板和访问日志记录变量参考使用 API Gateway Lambda 授权方为 API Gateway REST API 资源启用 CORS

April 5, 2019

无服务器开发人员门户改进

增加了管理员面板以及更方便在 Amazon API Gateway 开发人员门户中发布 API 的其他改进。有关更多信息,请参阅使用开发人员门户为您的 API 编目

March 28, 2019

支持 AWS Config

增加了对 AWS Config 的支持有关更多信息,请参阅使用 AWS Config 监控 API Gateway API 配置

March 20, 2019

支持 AWS CloudFormation

在 AWS CloudFormation 模板参考中增加了 API Gateway V2 API。有关更多信息,请参阅 Amazon API Gateway V2 资源类型引用

February 7, 2019

支持 WebSocket API

添加了对 WebSocket API 的支持。有关更多信息,请参阅在 Amazon API Gateway 中创建 WebSocket API

December 18, 2018

无服务器开发人员门户可通过 AWS Serverless Application Repository 使用

Amazon API Gateway 开发人员门户无服务器应用程序现在可从 AWS Serverless Application Repository(除了 GitHub 之外)使用。有关更多信息,请参阅使用开发人员门户为您的 API Gateway API 编目

November 16, 2018

支持 AWS WAF

添加了对 AWS WAF(Web 应用程序防火墙)的支持。有关更多信息,请参阅使用 AWS WAF 控制对 API 的访问

November 5, 2018

无服务器开发人员门户

Amazon API Gateway 现在提供了完全可定制的开发人员门户作为无服务器应用程序,您可以部署它以发布您的 API Gateway API。有关更多信息,请参阅使用开发人员门户为您的 API Gateway API 编目

October 29, 2018

支持多值标头和查询字符串参数

Amazon API Gateway 现在支持多个具有相同名称的标头和查询字符串参数。有关更多信息,请参阅支持多值标头和查询字符串参数

October 4, 2018

更新的文档

添加了新主题:Amazon API Gateway 资源策略如何影响授权工作流

September 27, 2018

OpenAPI 支持

Amazon API Gateway 现在支持 OpenAPI 3.0 以及 OpenAPI (Swagger) 2.0。

September 27, 2018

活跃 AWS X-Ray 集成

现在,您可以使用 AWS X-Ray 来跟踪和分析用户请求通过您的 API 传输到基础服务时的延迟。有关更多信息,请参阅 Trace API Gateway API 执行与 AWS X-Ray

September 6, 2018

缓存改进

只有当您为 API 阶段启用缓存时,GET 方法才会默认启用缓存。这有助于确保您的 API 的安全。您可以通过覆盖方法设置为其他方法启用缓存。有关更多信息,请参阅启用 API 缓存以提高响应能力

August 20, 2018

修改了服务限制

已修改几个限制:增加了每账户 API 数。提高了创建/导入/部署 API 的 API 速率限制。已更正一些从每分钟到每秒的速率。有关更多信息,请参阅限制

July 13, 2018

覆盖 API 请求和响应参数以及标头

添加了对覆盖请求标头、查询字符串和路径以及响应标头和状态代码的支持。有关更多信息,请参阅使用映射模板覆盖 API 的请求和响应参数以及标头

July 12, 2018

使用计划的方法级别限制

添加了对设置默认每方法限制以及在使用计划设置中设定单个 API 方法的限制的支持。除了现有的账户级别限制和默认方法级别限制之外,还可以在阶段设置中设定这些设置。有关更多信息,请参阅限制 API 请求以获得更高的吞吐量

July 11, 2018

现在可通过 RSS 提供 API Gateway 开发人员指南 更新通知

API Gateway 开发人员指南 的 HTML 版本现在支持更新的 RSS 源,此类更新显示在文档历史记录页面上。RSS 源包括 2018 年 6 月 27 日及此日期之后发布的更新。在此之前发布的更新仍会显示在该页面上。使用顶部菜单面板中的 RSS 按钮,订阅此源。

June 27, 2018

早期更新

下表描述了 2018 年 6 月 27 日之前每次发布 API Gateway 开发人员指南 时进行的重要修改。

变更 描述 更改日期

私有 API

添加了对您通过接口 VPC 终端节点公开的私有 API 的支持。您的私有 API 的流量不会离开 Amazon 网络;它与公有 Internet 隔离开来。

2018 年 14 月 6 日

跨账户 Lambda 授权方和集成以及跨账户 Amazon Cognito 用户池授权方

使用另一个 AWS 账户中的 AWS Lambda 函数作为 Lambda 授权方函数或 API 集成后端。或使用 Amazon Cognito 用户池作为授权方。另一个账户可以在提供 Amazon API Gateway 的任何区域中。有关更多信息,请参阅配置跨账户 Lambda 授权方教程:使用跨账户 Lambda 代理集成构建 API Gateway API使用 API Gateway 控制台为 REST API 配置跨账户 Amazon Cognito 授权方

2018 年 4 月 2 日

用于 API 的资源策略

使用 API Gateway 资源策略可以允许其他 AWS 账户的用户安全地访问您的 API,或者仅允许从指定的源 IP 地址范围或 CIDR 块调用 API。有关更多信息,请参阅 使用 Amazon API Gateway 资源策略控制对 API 的访问

2018 年 4 月 2 日

为 API Gateway 资源添加标签

在 API Gateway 中可使用最多 50 个标签为 API 阶段添加标签,用于 API 请求的成本分配和缓存。有关更多信息,请参阅 在 API Gateway 中为 API 阶段设置标签

2017 年 12 月 19 日

负载压缩和解压缩 允许使用支持的内容编码之一调用具有压缩负载的 API。如果指定了正文映射模板,则压缩负载需要进行映射。有关更多信息,请参阅 为 API 启用负载压缩 2017 年 12 月 19 日
API 密钥来自自定义授权方 从自定义授权方将 API 密钥返回到 API Gateway,以便为需要密钥的 API 方法应用使用计划。有关更多信息,请参阅 选择一个 API 密钥源 2017 年 12 月 19 日
使用 OAuth 2 范围授权 使用 OAuth 2 范围和 COGNITO_USER_POOLS 授权方启用对方法调用的授权。有关更多信息,请参阅 使用 Amazon Cognito 用户池 作为授权方控制对 REST API 的访问权限 2017 年 12 月 14 日
私有集成和 VPC 链接 使用 API Gateway 私有集成创建 API,向位于 VPC 外部的客户端,通过 VpcLink 资源提供对 Amazon VPC 中 HTTP/HTTPS 资源的访问。有关更多信息,请参阅 教程:使用 API Gateway 私有集成构建 API设置 API Gateway 私有集成 2017 年 11 月 30 日
为 API 测试部署金丝雀版本 将金丝雀版本添加到现有 API 部署,用于测试 API 的较新版本,同时确保运营中的当前版本保持在相同的阶段。您可以为金丝雀版本设置阶段流量百分比,以及启用在单独的 CloudWatch Logs 日志中记录特定于金丝雀版本的执行和访问。有关更多信息,请参阅 设置 API Gateway 金丝雀版本部署 2017 年 11 月 28 日
访问日志 使用您选择的格式,通过从 $context 变量派生的数据记录对 API 的客户端访问。有关更多信息,请参阅 在 API Gateway 中设置 CloudWatch API 日志记录 2017 年 11 月 21 日
API 的 Ruby 开发工具包 为您的 API 生成 Ruby 开发工具包并将其用于调用 API 方法。有关更多信息,请参阅 生成 API 的 Ruby 开发工具包使用由 API Gateway 为 REST API 生成的 Ruby 开发工具包 2017 年 11 月 20 日
区域 API 终端节点 指定区域 API 终端节点来为非移动客户端创建 API。非移动客户端,例如 EC2 实例,在与部署 API 的相同 AWS 区域中运行。与边缘优化的 API 一样,您可为区域 API 创建自定义域名。有关更多信息,请参阅 在 API Gateway 中设置区域 API在 API Gateway 中为区域 REST API 或 WebSocket API 设置自定义域名 2017 年 11 月 2 日
自定义请求授权方 使用自定义请求授权方可提供请求参数中的用户身份验证信息以授权 API 方法调用。请求参数包括标头和查询字符串参数以及阶段和上下文变量。有关更多信息,请参阅 使用 API Gateway Lambda 授权方 2017 年 9 月 15 日
自定义网关响应 针对无法到达集成后端的 API 请求自定义 API Gateway 生成的网关响应。自定义网关消息可以为调用方提供特定于 API 的自定义错误消息,包括返回所需的 CORS 标头,或者也可以将网关响应数据转换为外部交换的格式。有关更多信息,请参阅 设置网关响应以自定义错误响应 2017 年 6 月 6 日
将 Lambda 自定义错误属性映射到方法响应标头 使用 integration.response.body 参数(依赖于 API Gateway 在运行时反序列化字符串化的自定义错误对象),将从 Lambda 返回的单独自定义错误属性映射到方法响应标头参数。有关更多信息,请参阅 处理 API Gateway 中的自定义 Lambda 错误 2017 年 6 月 6 日
限制提高 账户级别稳态请求速率限制提高至每秒 10000 个请求 (rps),突发限制提高至 5000 个并发请求。有关更多信息,请参阅 限制 API 请求以获得更高的吞吐量 2017 年 6 月 6 日
验证方法请求 配置基本请求验证器,以便 API Gateway 可以在 API 级别或方法级别验证传入请求。API Gateway 验证参数设置为所需的格式进行验证,而不是留空,适用负载符合配置的模型。有关更多信息,请参阅 在 API Gateway 中启用请求验证 2017 年 4 月 11 日
与 ACM 集成 针对您的 API 自定义域名使用 ACM 证书。您可以在 AWS Certificate Manager 中创建一个证书,或将现有的 PEM 格式证书导入 ACM。然后,您可以在为 API 设置自定义域名时引用证书的 ARN。有关更多信息,请参阅 在 API Gateway 中为 API 设置自定义域名 2017 年 9 月 3 日
生成并调用 API 的 Java 开发工具包 让 API Gateway 为您的 API 生成 Java 开发工具包,并使用该开发工具包在 Java 客户端中调用 API。有关更多信息,请参阅 使用由 API Gateway 为 REST API 生成的 Java 开发工具包 2017 年 1 月 13 日
与 AWS Marketplace 集成 通过 AWS Marketplace,在使用计划中将您的 API 作为 SaaS 产品进行销售。使用 AWS Marketplace 扩展您的 API 的范围。依赖 AWS Marketplace 以代表您处理客户账单。让 API Gateway 处理用户授权和使用情况计量。有关更多信息,请参阅 将您的 API 作为 SaaS 进行销售 2016 年 12 月 1 日
为您的 API 启用文档支持 在 API Gateway 中,为 DocumentationPart 资源中的 API 实体添加文档。将 DocumentationPart 实例集合的快照与 API 阶段相关联以创建 DocumentationVersion。通过将文档版本导出到外部文件 (如 Swagger 文件),发布 API 文档。有关更多信息,请参阅 在 API Gateway 中记录 REST API 2016 年 12 月 1 日
更新了自定义授权方 现在,客户授权方 Lambda 函数会返回调用方的委托人标识符。该函数还会将其他信息作为 context 映射和 IAM 策略的键/值对返回。有关更多信息,请参阅 来自 Amazon API Gateway Lambda 授权方的输出 2016 年 12 月 1 日
支持二进制负载 设置您 API 的 binaryMediaTypes,以支持请求或响应的二进制负载。设置 IntegrationIntegrationResponsecontentHandling 属性,以指定是将二进制负载处理为本地二进制 blob、Base64 编码字符串,还是无需修改即直接传递。有关更多信息,请参阅 支持 API Gateway 中的二进制负载 2016 年 11 月 17 日
通过 API 的代理资源启用与 HTTP 或 Lambda 后端的代理集成。 使用 {proxy+} 形式的“贪婪”路径参数和“捕获全部”ANY 方法创建一个 代理资源。代理资源 分别使用 HTTP 或 Lambda 代理集成与 HTTP 或 Lambda 后端集成。有关更多信息,请参阅 设置具有代理资源的代理集成 2016 年 9 月 20 日
通过提供一个或多个使用计划,将 API Gateway 内的选定 API 扩展为面向客户的产品服务。 在 API Gateway 内创建使用计划,以使选定的 API 客户端能够按照商定的请求速率和配额访问指定的 API 阶段。有关更多信息,请参阅 创建和使用带 API 密钥的使用计划 2016 年 8 月 11 日
通过 Amazon Cognito 中的用户池启用方法级别授权 在 Amazon Cognito 内创建用户池,并将其用作您自己的身份提供商。您可以将用户池配置为方法级别授权方,以便向在用户池中注册的用户授予访问权限。有关更多信息,请参阅 使用 Amazon Cognito 用户池 作为授权方控制对 REST API 的访问权限 2016 年 7 月 28 日
在 AWS/ApiGateway 命名空间下启用 Amazon CloudWatch 指标和维度。 AWS/ApiGateway 的 CloudWatch 命名空间下的 API Gateway 指标现已实现标准化。您可以在 API Gateway 控制台和 Amazon CloudWatch 控制台中进行查看。有关更多信息,请参阅 Amazon API Gateway 维度与指标 2016 年 7 月 28 日
为自定义域名启用证书轮换 借助证书轮换,您可以为自定义域名上传证书和续订过期证书。有关更多信息,请参阅 轮换 ACM 中导入的证书 2016 年 4 月 27 日
记录对更新的 Amazon API Gateway 控制台的更改。 了解如何使用更新的 API Gateway 控制台创建和设置 API。有关更多信息,请参阅 教程:通过导入示例创建 REST API教程:使用 HTTP 非代理集成构建 API 2016 年 4 月 5 日
启用“导入 API”功能以根据外部 API 定义创建新的 API 或更新现有 API。 借助“导入 API”功能,您可以通过 API Gateway 扩展上传 Swagger 2.0 中表述的外部 API 定义,从而创建新 API 或更新现有 API。有关“导入 API”的更多信息,请参阅将 REST API 导入 API Gateway 中 2016 年 4 月 5 日
公开 $input.body 变量以访问字符串形式的原始负载和 $util.parseJson() 函数,从而将 JSON 字符串转换为映射模板内的 JSON 对象。 有关 $input.body$util.parseJson() 的更多信息,请参阅API Gateway 映射模板和访问日志记录变量引用 2016 年 4 月 5 日
启用使方法级别缓存失效的客户端请求,提高请求限制管理。 刷新 API 阶段级别缓存,并使各个缓存条目失效。有关更多信息,请参阅 在 API Gateway 中刷新 API 阶段缓存使 API Gateway 缓存条目失效。改善管理 API 请求限制方面的控制台体验。有关更多信息,请参阅 限制 API 请求以获得更高的吞吐量 2016 年 3 月 25 日
使用自定义授权启用和调用 API Gateway API 创建和配置 AWS Lambda 函数以实施自定义授权。该函数会返回一个 IAM 策略文档,该文档会向 API Gateway API 的客户端请求授予“允许”或“拒绝”权限。有关更多信息,请参阅 使用 API Gateway Lambda 授权方 2016 年 2 月 11 日
使用 Swagger 定义文件和扩展导入和导出 API Gateway API 结合使用 Swagger 规范和 API Gateway 扩展来创建和更新您的 API Gateway API。使用 API Gateway 导入程序导入 Swagger 定义。使用 API Gateway 控制台或 API Gateway Export API 将 API Gateway API 导出到 Swagger 定义文件。有关更多信息,请参阅 将 REST API 导入 API Gateway 中导出 REST API 2015 年 12 月 18 日
将请求、响应正文或正文的 JSON 字段映射到请求或响应参数。 将方法请求正文或其 JSON 字段映射到集成请求的路径、查询字符串或标头。将集成响应正文或其 JSON 字段映射到请求响应的标头。有关更多信息,请参阅 Amazon API Gateway API 请求和响应数据映射参考 2015 年 12 月 18 日
使用 Amazon API Gateway 中的阶段变量 了解如何将配置属性与 Amazon API Gateway 中 API 的部署阶段相关联。有关更多信息,请参阅 为 REST API 部署设置阶段变量 2015 年 11 月 5 日
如何:为方法启用 CORS 现在,您可以在 Amazon API Gateway 中更轻松地为方法启用跨源资源共享 (CORS)。有关更多信息,请参阅 为 REST API 资源启用 CORS 2015 年 11 月 3 日
如何:使用客户端 SSL 身份验证 使用 Amazon API Gateway 生成 SSL 证书,您可以用它来对 HTTP 后端调用进行身份验证。有关更多信息,请参阅 生成和配置 SSL 证书用于后端身份验证 2015 年 9 月 22 日
模拟方法集成

了解如何 模拟将 API 与 Amazon API Gateway 集成。借助此功能,开发人员可以直接从 API Gateway 生成 API 响应,而无需提前在后端进行最终集成。

2015 年 9 月 1 日
Amazon Cognito 身份支持 Amazon API Gateway 扩展了 $context 变量的范围,现在,在发出使用 Amazon Cognito 凭证签名的请求时,它会返回有关 Amazon Cognito 身份的信息。此外,我们添加了 $util 变量,用于对 JavaScript 中的字符串进行转义,以及对 URL 和字符串进行编码。有关更多信息,请参阅 API Gateway 映射模板和访问日志记录变量引用 2015 年 8 月 28 日
Swagger 集成 使用 GitHub 上的 Swagger 导入工具将 Swagger API 定义导入 Amazon API Gateway。了解有关 基于 OpenAPI 的 API Gateway 扩展 的更多信息,以使用导入工具创建和部署 API 和方法。利用 Swagger 导入程序工具,您还可以更新现有 API。 2015 年 7 月 21 日
映射模板参考

$input 中,阅读有关 API Gateway 映射模板和访问日志记录变量引用 参数及其函数的信息。

2015 年 7 月 18 日
第一个公开发布版

这是 API Gateway 开发人员指南 的第一个公开发布版。

2015 年 7 月 9 日

本页内容: