本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Cloud MapAPI 请求限制配额
Amazon Cloud Map限制 DiscoverInstancesAPI 请求区域的基础上的每个Amazon账户。限制有助于提高服务的性能,并有助于为所有Amazon Cloud Map客户提供公平的使用。限制可确保对Amazon Cloud Map DiscoverInstancesAPI 的调用不超过允许的最大 DiscoverInstancesAPI 请求配额。DiscoverInstances来自以下任何来源的 API 调用均受请求配额的约束:
-
第三方应用程序
-
命令行工具
-
Amazon Cloud Map 控制台
如果您超过 API 限制配额,则会收到RequestLimitExceeded
错误代码。有关更多信息,请参阅请求速率限制:
如何应用节流
Amazon Cloud Map使用令牌存储桶算法
请求速率限制
限制限制您可发出的 DiscoverInstancesAPI 请求数量。每个请求都会从存储桶中删除一个令牌。例如,DiscoverInstancesAPI 操作的存储桶大小为 6,000 个令牌,因此您在一秒钟内最多可以发出 6,000 个DiscoverInstances请求。如果您在一秒钟内超过 6,000 个请求,则会受到限制,并且该秒内的剩余请求将失败。
存储桶会自动按设定的速率重新装满。如果存储桶的容量不足,则每秒会向回添加一定数量的代币,直到存储桶达到容量为止。如果充值代币到达时存储桶已满员,则这些代币将被丢弃。DiscoverInstancesAPI 操作的存储桶大小为 6,000 个代币,充值率为每秒 1,000 个代币。如果您在一秒钟内发出 6,000 个 DiscoverInstancesAPI 请求,则存储桶会立即减少为零 (0) 个令牌。然后,存储桶每秒最多可充满 1,000 个代币,直到其最大容量达到 2000 个代币。
当代币添加到存储桶时,您可以使用它们。在发出 API 请求之前,您无需等待存储桶达到最大容量。如果您在一秒钟内发出 6,000 个 DiscoverInstancesAPI 请求来耗尽存储桶,则在此之后只要需要,您仍可以每秒最多发出 1,000 个 DiscoverInstancesAPI 请求。这意味着您可以将充值代币添加到您的存储桶后立即使用它们。只有当您每秒发出的 API 请求少于重新填充速率时,存储桶才会开始重新填充到最大容量。
重试或批处理
如果 API 请求失败,您的应用程序可能需要重试该请求。要减少 API 请求的数量,请在连续请求之间使用适当的休眠间隔。为了获得最佳的效果,请使用递增或可变的睡眠间隔。
计算睡眠间隔
在需要轮询或重试 API 请求时,我们建议您使用指数回退算法计算 API 调用之间的睡眠间隔。通过逐渐延长连续错误响应的两次重试之间的等待时间,可以减少失败的请求数量。有关此算法的更多信息和实现示例,请参阅中的错误重试和指数回退Amazon。
调整 API 限制配额
您可以请求增加您的 Amazon 账户的 API 限制配额。要请求配额调整,请联系 Amazon Web Services Support 中心