构建基于 Amazon API Gateway 的无服务器 API
1. API 管理之限流与配额管理
在部署 API 之后,我们需要将重点转移到 API 的管理上。API Gateway 提供的管理功能之一是控制流量,可通过限制请求速率和请求总数来实现。限流的一个重要原因是保护后端集成免受负载突然激增的影响,例如后端架构存在性能瓶颈,像最大连接数有限的单体数据库,或者扩展 EC2 实例以处理新负载需要一定时间。
当使用 API 密钥时,可以通过创建使用计划来配置 API Gateway 中的限流和配额。使用计划允许对密钥进行计量,并在达到配置的阈值时应用流量规则。请求超过限制时,会返回 HTTP 429 “Too Many Requests” 状态码。也可以通过配置阶段设置在方法级别设置限流限制。
每个 AWS 账户都有默认限制,可通过提交服务请求提高。默认软限制为每秒 10,000 个请求,突发容量为 5,000 个请求。API Gateway 使用令牌桶算法实现限流逻辑,该算法有两个组成部分:
- 突发容量 :令牌桶的最大大小。
- 速率 :添加到桶中的令牌(或请求)数量。
请求使用限制按从最具体(API 密钥)到最不具体(账户级别)的顺序应用。
2. 监控与日志记录
API 部署后,有一组 CloudWatch 指标会在 API 开始执行时立即收集。部署 API 后,API 页面列表中会出现一个名为 “Dashboard” 的选项,这里有一个基本的仪表盘显示一些指标。在 CloudWatch 控制台中可以更好地查找