Amazon API Gateway ​是一种完全托管的服务,可以帮助开发人员轻松发布、维护、监控、保护和运行任意规模的 API。这是一项按使用量付费的服务,可以无差别地承担安全可靠运行大规模 API 涉及的所有繁重任务。

随着移动设备的激增以及物联网 (IoT) 的崛起,通过 API 让应用程序访问后端系统和数据变得越来越常见。由于很多应用程序都在使用 API,并且开发人员社区依赖于这些 API,因此越来越多的时间和工作花在了 API 开发和 API 管理方面。为了让大家可以轻松使用这些 API,API Gateway 还可以为多种语言(包括 JavaScript、iOS 和 Android)生成客户端开发工具包。

​为 RESTful API 和 WebSocket API 提供支持

通过 API Gateway,您可以使用 HTTP API 或 REST API 创建 RESTful API。HTTP API 是构建 API 的最佳方式,无需 API 管理功能。HTTP API 已针对无服务器工作负载和 HTTP 后端进行了优化,与 API Gateway 中的 REST API 相比,它们可实现高达 71% 的成本节省和 60% 的延迟降低。对于在单个解决方案中需要 API 代理功能和 API 管理功能的工作负载,例如使用套餐和 API 密钥,API Gateway 可提供 REST API。要查看受支持的 HTTP API 和 REST API 功能的并行比较,请访问我们的文档。要构建实时双向通信应用程序,如聊天应用和流式控制面板,请使用 WebSocket API。要详细了解 API Gateway 中的 RESTful API 和 WebSocket API,请访问我们的常见问题页面

与 AWS ELB 和 AWS Cloud Map 的私有集成

使用 API Gateway,您可以将请求路由至 VPC 中的私有资源。使用 HTTP API,您可以为私有 ALB、私有 NLB 背后的服务及在 AWS Cloud Map 中注册的基于 IP 的服务,如 ECS 任务构建 API。

弹性

通过 API Gateway,您可以根据每秒的请求数量来为 API 中的每个 HTTP 方法设置限制规则,从而帮助您管理指向后端系统的流量。API Gateway 可处理 API 接收到的任何级别的流量,因此您可以专注于您的业务逻辑和服务,而不是将时间用在维护基础设施上。如果您使用的是 REST API,您还可以为 API 数据设置包含可自定义密钥和生存时间(以秒为单位)的缓存,以避免每个请求都调用您的后端服务。

轻松创建和部署 API

通过 API Gateway,您可以根据在 AWS Lambda 中运行的代码快速、轻松地创建自定义 API,然后通过 API 调用 Lambda 代码。API Gateway 可以在您的账户中执行 AWS Lambda 代码,启动 AWS Step Functions 状态机,或者在 AWS 外部通过可公开访问的 HTTP 终端节点来调用 AWS Elastic Beanstalk、Amazon EC2 或 Web 服务。利用 API Gateway 控制台,您可以定义 REST API 及其关联的资源和方法、管理 API 生命周期、生成客户端软件开发工具包,并能查看 API 指标。

API 操作监控

在 API 部署并使用之后,API Gateway 为您提供了一个控制面板,可直观地监控服务调用的情况。API Gateway 控制台与 Amazon CloudWatch 集成,因此您可以获得一些后端性能指标,如 API 调用次数、延迟和错误率等。由于 API Gateway 使用 CloudWatch 来记录监控信息,您可以对 API Gateway API 设置自定义警报。API Gateway 还可以将 API 执行错误记录到 CloudWatch Logs 以简化调试。

AWS 授权

在授权和验证对 AWS 服务的 API 请求方面,API Gateway 可以帮助您将 Signature Version 4 用于 REST API 和 WebSocket API。借助签名版本 4 身份验证方法,您可以使用 AWS Identity and Access Management (IAM) 和访问策略,授予对您的 API 和其他所有 AWS 资源的访问权限。您还可以使用 AWS Lambda 函数验证持有者令牌(如,JWT 令牌或 SAML 断言)并向其授权。

面向第三方开发人员的 API 密钥

如果您使用的是 REST API,API Gateway 可帮助您管理访问您的 API 的第三方开发人员生态系统。您可以在 API Gateway 上创建 API 密钥,对每个 API 密钥设置精细的访问权限,然后将其分发给第三方开发人员以访问您的 API。您还可以定义用于为各个 API 密匙设置限制并请求配额限制的计划。API 密钥的使用是完全可选的,并且必须根据各个方法级别启用。

生成开发工具包

如果您使用的是 REST API,API Gateway 可以为大量平台生成客户端开发工具包,您可以使用这些客户端开发工具包快速测试您应用中的新 API,并将开发工具包分发给第三方开发人员。生成的开发工具包可以通过 AWS 凭证来处理 API 密钥以及签名请求。API Gateway 可以生成适用于 Java、JavaScript、Java for Android、Objective-C 或 Swift for iOS 和 Ruby 的客户端开发工具包。您可以使用 AWS CLI,通过调用 get-sdk 命令为支持的平台生成 API 的开发工具包并下载。

API 生命周期管理

如果您使用的是 REST API,API Gateway 使您可以同时运行同一 API 的多个版本,这样即使发布了最新版本,应用程序也可继续调用之前的 API 版本。API Gateway 还可帮助您管理每个 API 版本的多个发布阶段,如 Alpha、Beta 和生产阶段。每个 API 阶段都可配置为根据 API 设置与不同后端终端节点交互。API 的具体阶段和版本可与一个自定义域名相关,并通过 API Gateway 进行管理。借助阶段和版本管理,您可以轻松测试在旧版 API 的基础上经过增强或添加了新功能的新版 API,并在用户社区转为采用最新版本期间确保向后兼容性。