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

在 Route 53 中对托管区域执行批量资源记录操作时,可能会收到 HTTP 400(错误请求)错误。当响应标头中包含值为 ThrottlingCode 元素以及值为 Rate exceededMessage 元素时,表明速率受限制。

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

如果 Route 53 在相同托管区域的下一个请求到达之前无法处理某个请求,则它将拒绝后续请求,并返回另一个 HTTP 400 错误。响应标头中包含值为 PriorRequestNotCompleteCode 元素以及值为 the request was rejected because Route 53 was still processing a prior requestMessage 元素。

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

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

批处理请求

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

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

例如,您可以在一个批处理操作中,请求对许多记录执行 CREATE、DELETE 或 LIST。

使用错误重试和指数退避

错误重试和指数退避添加到您的 Route 53 API 调用中。

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

随机化开始时间

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

在两次调用之间引入“休眠时间”

如果代码函数对 Route 53 API 的调用是连续的,则在两次调用之间增加“休眠时间”可最大程度地降低限制风险。

注意:如果在使用这些故障排除方法后,仍然对您的账户进行了速率限制,请提交 Route 53 支持案例,以便帮助您查找超过每秒阈值的 API 调用的源 IP 地址。然后,您可以关闭不必要的来源,或者使用这些故障排除方法来解决问题。


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助?访问 AWS 支持中心

发布时间:2018 年 08 月 09 日