@lsmn
2016-08-31T06:28:56.000000Z
字数 1653
阅读 2484
云计算
Amazon
API
近日,Amazon升级了他们的API网关服务,推出了API网关“使用计划(Usage Plans)”。通过第三方开发者生态系统将API货币化,是企业暴露API时经常采用的模式之一。使用计划让组织可以管理第三方开发人员的消费模式,实现API密钥层计费。
近日,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和操作级别上进行。