写点什么

Amazon 推出 API 网关使用计划

  • 2016-09-04
  • 本文字数:1283 字

    阅读完需:约 4 分钟

近日,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 和操作级别上进行。

查看英文原文: Amazon Introduces API Gateway Usage Plans

2016-09-04 19:002392
用户头像

发布了 1008 篇内容, 共 374.4 次阅读, 收获喜欢 341 次。

关注

评论

发布
暂无评论
发现更多内容

【100个 Unity踩坑小知识点】| Unity中的 Development build 详细解析

呆呆敲代码的小Y

PHP开发者福音,支持CRUD代码生成且前后分离的tp6+Vue3后台管理系统开源啦!

妙码生花

php typescript Vue3 thinkphp Pinia

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

坚果

6月月更

NFT赛道或进入聚合时代,OKALEIDO成BNB Chain上的首个NFT聚合平台

股市老人

spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法

程序员欣宸

Java spring 6月月更

Linux驱动开发_视频广告机开发、Linux进程编程介绍

DS小龙哥

6月月更

Junit 测试中如何对异常进行断言

HoneyMoose

Fabric.js 精简输出的JSON🎫

德育处主任

FabricJS 6月月更

浅谈JavaScript原型和原型链

大熊G

JavaScript 前端 6月月更

【100个 Unity踩坑小知识点】| Unity 使用Quaternion.AngleAxis随机一个方向

呆呆敲代码的小Y

软件设计本质

GalaxyCreater

架构 设计模式 架构师 系统 软件设计

AssertJ 的异常(Exception )断言

HoneyMoose

C#入门系列(七) -- 循环语句

陈言必行

C# 6月月更

Web Service进阶(五)SOAPBinding方式讲解

No Silver Bullet

6月月更 SOAPBinding

【100个 Unity实用技能】| 游戏中使技能或装备跟随角色环绕,持续旋转

呆呆敲代码的小Y

理解 Java 中的 NumberFormatException 异常

HoneyMoose

【100个 Unity踩坑小知识点】| Unity控制物体持续指向某个方向

呆呆敲代码的小Y

【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格

呆呆敲代码的小Y

数据库每日一题---第4天:从不订购的客户

知心宝贝

数据库 程序员 前端 后端 6月月更

见自身,见天地:华为,将ICT技术变成绿色未来的支点

脑极体

Django API 开发:博客系统的权限管理

宇宙之一粟

django 6月月更

【100个 Unity实用技能】| 游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置

呆呆敲代码的小Y

【100个 Unity踩坑小知识点】| Unity中的 碰撞盒检测 Physics.OverlapBox、OverlapCapsule、OverlapSphere

呆呆敲代码的小Y

【100个 Unity踩坑小知识点】| 在编辑器中绘制正方体虚线、球体虚线(Gizmos 辅助线框)

呆呆敲代码的小Y

在线JADE转HTML工具

入门小站

工具

数据类型

Jason199

js 数据类型 6月月更

vue指令-2

小恺

6月月更

【愚公系列】2022年06月 面向对象设计原则(一)-单一职责原则

愚公搬代码

6月月更

【网络编程知识】什么是Socket?概念及原理分析

呆呆敲代码的小Y

如何使用物联网低代码平台进行模型管理?

AIRIOT

物联网 低代码开发

如何写好技术博客

卢卡多多

技术 博客 6月月更

Amazon推出API网关使用计划_亚马逊云科技_Kent Weare_InfoQ精选文章