我的应用程序在调用 Amazon EC2 Auto Scaling、AWS Auto Scaling 或 AWS Application Auto Scaling 时,收到“超速”错误。如何避免出现此错误?
简短描述
任何 API 调用都不能超过每个账户和每个区域允许的最大 API 请求速率。这包括来自 AWS 命令行界面 (AWS CLI) 和 AWS 管理控制台的 API 调用。如果 API 请求超出最大速率,您会收到“超速”错误,并且未来的 API 调用会受限。
Amazon EC2 Auto Scaling、AWS Auto Scaling 和 AWS Application Auto Scaling 都有各自的 API 限制存储桶。也就是说,所有 Amazon EC2 Auto Scaling API 调用都有一个共享的 API 限制。Amazon EC2 Auto Scaling API 调用不会影响 AWS Application Auto Scaling API 的限制。
为避免“超速”错误和限制,请验证您的应用程序是否只进行了必要的调用。
**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本。
解决方法
为防止或减少出现“超速”错误和限制,请尝试以下解决方案:
验证“describe”调用
按照允许的请求速率衡量,过多“describe”调用计入了 API 请求总数。验证您的应用程序,确保所有“describe”调用都是必要的,并尽可能考虑除“describe”调用以外的解决方案。考虑使用来自 Amazon EventBridge 的推送通知,这些通知在实例状态更改时发送,例如,当实例启动生命周期挂钩时。
检查来自第三方应用程序的调用
第三方应用程序可能会连续调用 AWS 中的 Auto Scaling。验证您的第三方应用程序,确保它们没有进行不必要的调用。
实施错误重试和指数回退
错误重试和指数回退能够帮助限制 API 调用的速率。每个 AWS 开发工具包都会实现自动重试逻辑和指数回退算法。有关更多信息,请参阅 AWS 中的错误重试和指数回退。
在 AWS Support 中心请求提高服务配额
要增加服务配额,您必须确认已验证 API 调用速率,并已实施错误重试或指数回退方法。您还必须在请求中提供与限制问题相关的区域和时间范围。
避免活动突增
避免导致 API 调用突增的情况。例如,不要设置一个 Amazon EC2 Auto Scaling 组中的所有实例都在启动时启用缩减保护。相反,应在组中默认启用此选项,以便所有实例都默认启用保护。
相关信息
指数回退和抖动