近日,Amazon升级了他们的API 网关服务,推出了API 网关“使用计划(Usage Plans)”。借助使用计划,Amazon API 网关客户可以根据不同的访问级别和用户分类管理和货币化他们的API。通过第三方开发者生态系统将API 货币化,是企业暴露API 时经常采用的模式之一。使用计划让组织可以管理第三方开发人员的消费模式,实现API 密钥层计费。
Amazon 首次推出 API 网关服务是在 2015 年 7 月,其目的是为组织提供一种方法,让他们可以保护和管理运行在 AWS Lambda、EC2 及托管在公共端点上的 API。现在,该服务已经完成了升级,通过使用计划提供了粒度更细的 API 管理。具体来说,使用计划可以指定到不同的访问级别,比如 Bronze、Silver 和 Gold。它们还可以指定到不同的用户类别,包括学生、个人、专业人士或企业。借助使用计划,API 网关客户现在可以控制如下 API 参数:
- “节流(Throttling)”——总体请求速率(平均每秒的请求数)和突发流量;
- 限额——每天、周或月的请求数;
- API/Stage——可以访问的 API 和 API Stage。
使用计划可以通过 API 网关控制台创建。在使用计划里,管理员可以启用节流进程,限制 API 每秒请求数和突发请求数。使用计划还允许为预定义时间范围内的请求总数设定限额或上限。
在最近的一篇博文中,Amazon Web Services 首席宣传官 Jeff Barr 对 Amazon 如何实现节流进行了解释:
节流是使用令牌桶模型实现的。该桶足以容纳由 Burst 值表示的令牌数量,并按照指定的速率获取新的令牌。每个 API 请求会从桶中移除一个令牌。使用令牌桶让你的 API 可以支持一个稳定的请求流,并能够适应偶然出现的突发流量。
从业务和技术的角度看,节流可以确保计划级别低的客户不会引入性能问题,中断计划级别更高的客户的 API 调用。
图片来源: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
当一个 API 客户因为计划外的消费即将超出当月的限额时,可以通过临时扩展的方式避免服务中断。
图片来源: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
使用计划可以在不同的 API 网关 Stage 中实现。Amazon 创建了 Stage,使得计算环境的管理可以彼此独立,比如测试和生产环境。如果组织将 API 托管在了一个功能不够强大的测试环境中,那么他们可能会希望针对那个 Stage 或环境里的 API 客户执行不同的策略。
由于 Amazon 现在是在 API 密钥层测量使用情况,所以他们也能够通过“导出使用数据(Export Usage Data)”特性提供消费数据。管理员可以指定数据范围和消费数据格式,包括 JSON 或 CSV。这些信息后续可以作为计费依据提供给 API 客户。
图片来源: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/
测量消费、节流和限额不是 Amazon API 网关特有的东西。这是一些主流的 API 管理特性,在竞争对手提供的服务里也可以找到,其中包括微软的 Azure API 管理服务。微软是通过在不同的范围级别(产品、API 或操作)上使用不同的策略来实现节流和限额。消费跟踪则是在开发者、产品、订阅、API 和操作级别上进行。
评论