当我在 Amazon Route 53 托管区域上执行批量资源记录操作时,我的账户受到速率限制(API 限制)。如何解决此问题?

您在 Route 53 中为托管区域执行批量资源记录操作时,可能会收到 HTTP 400(错误请求)错误。如果响应标头中包含值为限制代码元素和值为超出速率消息元素,则表示速率限制。

警告:当 API 请求数量超过每秒 5 个请求的硬限制(每个账户)时,就会发生速率限制。

如果 Route 53 无法在下一次对同一托管区域的请求到达之前处理请求,则会拒绝后续请求,并出现另一个 HTTP 400 错误。响应标头包含一个值为 PriorRequestNotComplete代码元素,以及值为请求因 Route 53 仍在处理先前的请求而被拒绝消息元素。

注意:同一账户内的 IAM 用户进行的 API 调用将计入账户的全球速率限制,并会影响从 AWS 管理控制台进行的 API 调用。

您可以使用以下方法避免速率限制:

批处理请求

将相同类型的各个操作分组到一个更改批处理操作中,以减少 API 调用。

注意:UPSERT 请求(更新和插入)计数两次。

例如,您可以通过一次批处理操作请求创建、删除或列出许多记录。

使用错误重试和指数回退

请在 Route 53 API 调用中添加错误重试和指数回退

例如,使用简单的指数回退算法,该算法在 2^i 秒内重试调用,其中 i 是重试次数。

随机化开始时间

随机化调用 Route 53 API 的开始时间。确保没有多个应用程序同时执行逻辑,因为同时发出请求可能会导致限制。

在调用之间安排“睡眠时间”

如果代码函数连续调用 Route 53 API,请在两次调用之间添加“睡眠时间”,以最大限度地降低限制风险。

注意:如果您的账户在使用这些问题排查方法后仍受到速率限制,请使用 Route 53 创建支持案例寻求帮助,以查找超出每秒阈值的 API 调用的源 IP 地址。然后,您可以关闭不必要的源,或者使用这些问题排查方法来解决问题。


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS Support Center

发布时间:2018 年 8 月 9 日