本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 APIs
适当的 API 管理使内部和外部消费者都能访问您的微服务。 AWS 提供了多种服务,您可以将这些服务一起使用来安全地公开您的微服务 APIs。这些服务使您能够加强安全性, APIs 并从一个中心位置实施监控和可观察性。如果您的用户 CloudFront与托管服务的地理位置相距甚远, APIs 您也可以使用 Amazon 来提高性能。 AWS 区域
Amazon API Gateway
Amazon API Gateway 是一项完全托管的服务,使开发人员能够以任何规模创建、发布、维护、监控和 WebSocket APIs 保护 REST。您可以使用 API Gateway 来实施本指南通信模式部分所述的多种模式。
REST 有两种主要类型 APIs:REST 和 HTTP。两种类型都支持 RESTful APIs,但提供的功能不同。要确定哪个最适合您的需求,请参阅 API Gateway 文档 APIs中的在 REST APIs 和 HTTP 之间进行选择。本指南的本部分重点介绍 API Gateway REST APIs。
使用 API Gateway 作为您的入口点 APIs 提供了一个实现常见问题(例如请求验证和安全)的地方。API Gateway REST APIs 提供请求验证,允许您使用 JSON 架构
身份验证和授权
API Gateway REST APIs 支持以下身份验证 (authN) 和授权 (authZ) 机制:
-
IAM – 如果您使用 IAM,必须使用AWS 签名版本 4(SigV4)对 API 请求签名。
-
Amazon Cognito – API Gateway 将验证所提供的持有者令牌是否由 Amazon Cognito 用户池签发。如果已经在使用第三方身份提供者(IdP),也可以将 Amazon Cognito 用户池配置为与之集成。您也可以使用 Amazon Cognito 用户池进行 machine-to-machine (M2M) 身份验证。
-
AWS Lambda 授权方 — API Gateway 将调用您指定的 Lambda 函数来执行您想要的任何检查,以确定是否应授权请求。
有关更多信息,请参阅 API Gateway 文档 APIs中的控制和管理 REST 访问权限。
API 密钥和速率限制
您可以使用 API 密钥 APIs 和使用计划来控制允许谁给您打电话以及以什么费率给您打电话。API 密钥不应用于身份验证,但可与前文提到的架构结合使用。用户并不总是需要提供自己的 API 密钥,例如,Lambda 授权方可以为用户返回 API 密钥。您可以在使用计划中指定吞吐量、突发限制和每月配额。有关更多信息,请参阅 API Gateway 文档 APIs中的 REST 使用计划和 API 密钥。
公共和私人 APIs
可通过互联网访问 APIs 的 API Gateway REST 支持两种终端节点类型:
-
边缘优化,这意味着呼叫者的请求会被路由到附近的接入 CloudFront 点 (POP)。这可以提升地理位置分散的客户端的性能表现。
-
区域性端点,这意味着请求会路由到特定 AWS 区域内的资源。当您的所有客户端都位于 API 部署区域附近时,这是不错的选择。
API Gateway REST APIs 还支持私有 API 终端节点,这些终端节点可通过接口 VPC 终端节点从虚拟私有云 (VPC) 进行访问。您还可以 APIs 通过在其他甚至其他接口中创建接口 VPC 终端节点来安全地共享私有 REST AWS 账户。 VPCs有关更多信息,请参阅 API Gateway 文档 APIs中的 REST 的 API 端点类型。
何时使用 API Gateway
API Gateway 是 RESTful 网络服务和实时 WebSocket连接的不错选择。 WebSocket APIs 在 API Gateway 中使用时,可以为连接和断开连接事件添加行为,例如将连接存储 IDs 在与客户端属性关联的外部数据存储中。还可以使用消息属性将请求路由到自定义行为。
REST 和 REST WebSocket APIs 都可以直接与许多计算资源集成, AWS 服务 而无需单独的计算资源,例如 Lambda 函数。这可以提高性能并降低成本。
REST 既 APIs 支持基于路径的路由,也支持基于标头的路由,你可以单独使用它们,也可以一起使用。一种常见的模式是提供 REST API 作为许多人的前门 APIs,实现前面讨论的共同关注点,然后像反向代理一样行事,并将授权请求路由到正确的 API 端点。