Amazon API Gateway 是一种完全托管的服务,可以帮助开发人员轻松发布、维护、监控、保护和操作任意规模的 API。它是一项按使用量付费的服务,可以无差别地承担安全可靠地运行大规模 API 所涉及的所有繁重任务。
随着移动设备的激增和物联网 (IoT) 的崛起,通过 API 让应用程序访问后端系统和数据变得越来越常见。由于许多应用程序都在使用 API,而且开发人员社区也依赖于这些 API,因此花费在开发和管理 API 上的时间和精力就越来越多。为了让您可以轻松使用这些 API,API Gateway 还可以生成适用于多种语言 (包括 JavaScript、iOS 和 Android) 的客户端 SDK。
支持 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 有关的更多信息,访问我们的常见问题页面。
与 Amazon ELB 和 Amazon Cloud Map 私有集成
通过 API Gateway,您可以将请求路由至私有 Amazon Elastic Load Balancers (ELB)。您还可以使用 HTTP API 为私有 ALB、私有 NLB 背后的服务,以及在 Cloud Map 中注册的基于 IP 的服务(如 ECS 任务)构建 API。
富有弹性
借助于 API Gateway,您可以根据每秒的请求数量为 API 中的每个 HTTP 方法设置限制规则,从而管理传入后端系统的流量。API Gateway 可处理 API 接收到的任何级别的流量,因此您可以专注于您的业务逻辑和服务,而不是将时间用在维护基础设施上。如果使用 REST API,您还可以为 API 数据设置包含可自定义密钥和生存时间 (以秒为单位) 的缓存,以避免每个请求都调用您的后端服务。
轻松创建和部署 API
通过 API Gateway,您可以根据在 Amazon Lambda 中运行的代码快速、轻松地创建自定义 API,然后通过 API 调用 Lambda 代码。API Gateway 可以用您的账户执行 Amazon Lambda 代码、启动 亚马逊云科技 Step Functions 状态机,也可以在 亚马逊云科技 外部通过可公共访问的 HTTP 端点来调用 Amazon Elastic Beanstalk、Amazon EC2 或 Web 服务。利用 API Gateway 控制台,您可以定义 REST API 及其关联的资源和方法、管理 API 生命周期、生成客户端 SDK,并能查看 API 指标。
API 操作监控
在 API 部署完成并处于使用状态之后,API Gateway 会为您提供一个控制面板,让您直观地监控服务调用的情况。API Gateway 控制台与 Amazon CloudWatch 集成,因此您可以获得一些后端性能指标,如 API 调用次数、延迟和错误率等。由于 API Gateway 使用 CloudWatch 来记录监控信息,您可以为 API Gateway API 设置自定义警报。API Gateway 还可以将 API 执行错误记录到 CloudWatch 日志以简化调试。
亚马逊云科技 授权
在授权和验证对 亚马逊云科技 服务的 API 请求方面,API Gateway 可帮助您将签名版本 4 用于 REST API 和 WebSocket API。借助于签名版本 4 身份验证方法,您可以使用 Amazon Identity and Access Management (IAM) 和访问策略,授予对您的 API 和其他所有 亚马逊云科技 资源的访问权限。您还可以使用 Amazon Lambda 函数验证不记名令牌(如,JWT 令牌或 SAML 断言)并向其授权。
面向第三方开发人员的 API 密钥
若使用 REST API,API Gateway 帮助您管理访问您 API 的第三方开发人员生态系统。您可以在 API Gateway 上创建 API 密钥,对每个 API 密钥设置精细访问权限,然后将其分发给第三方开发人员以便他们访问您的 API。您还可以定义用于为各个 API 密匙设置限制并请求配额限制的计划。API 密钥的使用是完全可选的,并且必须根据各个方法级别启用。
SDK 生成
如果您使用 REST API,API Gateway 可为大量平台生成客户端 SDK,您可以使用这些 SDK 从您的应用程序快速测试新 API 并将 SDK 分发给第三方开发人员。生成的 SDK 可使用 亚马逊云科技 凭证来处理 API 密钥和签名请求。API Gateway 可以为 Java、JavaScript、Java for Android、Objective-C 或 Swift for iOS,以及 Ruby 生成客户端 SDK。您可以通过调用 get-sdk 命令使用 Amazon CLI 生成并下载 API 的 SDK,并将其用于支持的平台。
API 生命周期管理
如果您使用 REST API, API Gateway 让您可以同时运行同一 API 的多个版本,以便应用程序在最新版本的 API 发布后也可继续调用之前的版本。API Gateway 还可帮助您管理每个 API 版本的多个发布阶段,如 Alpha、Beta 和生产阶段。每个 API 阶段都可配置为根据 API 设置与不同后端终端节点交互。API 的具体阶段和版本可以与自定义域名相关联,并通过 API Gateway 进行管理。借助于阶段和版本管理,您可以轻松测试在旧版 API 的基础上经过增强或添加了新功能的新版 API,并在用户社区转为采用最新版本期间确保向后兼容性。
预期用途和限制
使用本服务需遵守 亚马逊云科技 客户协议。