如何找到导致“Rate exceeded”(超出速率)错误的 AWS API 调用?

2 分钟阅读
0

当我尝试创建、更新或访问 AWS 服务时,我收到“Rate exceeded”(超出速率)错误消息。我想知道是哪个 API 调用导致了此错误。

简短描述

要确定导致您的 AWS 账户中出现 Rate exceeded(超出速率)错误的 API 调用,请为 AWS CloudTrail 日志创建一个 Amazon Athena 表。然后,运行 Athena 查询,以查找与 Rate exceeded(超出速率)错误关联的 API 调用。

**注意:**要在您的账户中记录 API 活动,您必须先在 CloudTrail 中创建跟踪。只有在创建跟踪后,跟踪才会在您的账户中记录数据事件

解决方法

为 CloudTrail 日志创建 Athena 表

有关说明,请参阅使用 CloudTrail 控制台为 CloudTrail 日志创建 Athena 表

创建并运行 Athena 查询以查找关联的 API 调用

完成以下步骤:

  1. 打开 Athena 控制台

  2. 选择 New query(新建查询)选项卡。

  3. 将以下示例查询输入到查询文本框中,然后选择 Run query(运行查询):

    SELECT eventname, errorcode, eventsource, awsregion, useragent, COUNT(*) AS count  
      FROM cloudtrail-table-name     
     WHERE errorcode = 'ThrottlingException'  
           AND eventtime BETWEEN '2018-10-14T03:00:08Z' AND '2018-10-23T07:15:08Z'  
     GROUP BY errorcode, awsregion, eventsource, useragent, eventname  
     ORDER BY count DESC;

    **注意:**请将 cloudtrail-table-name 替换为您的 CloudTrail 表名称。

  4. 在查询输出中,查找 errorcode 字段中值为 ThrottlingException 的记录。eventnameeventsource 字段中的 API 调用会导致 Rate exceeded(超出速率)错误。

对不同 API 调用和 AWS 服务的“Rate exceeded”(超出速率)错误进行故障排除

在不同的节流条件下可能会出现 Rate exceeded(超出速率)错误。条件取决于您使用的 AWS 服务和 API 调用。

要对您使用的 API 调用或 AWS 服务的 Rate exceeded(超出速率)错误进行故障排除,请参阅以下 AWS Knowledge Center 文章。

**注意:**您可以在 AWS API 调用中添加一个等待语句,以便调用在发生节流后进行重试。有关详细信息,请参阅重试行为

GetResourceConfigHistory 或 ListDiscoveredResources API 调用

请参阅如何对 AWS Config 控制台错误消息进行故障排除?

PutMetricData API 调用

请参阅我在 CloudWatch API 中调用 PutMetricData 时如何避免节流?

针对 AWS Auto Scaling 的 API 调用

请参阅如何防止 Auto Scaling API 调用受到限制?

针对 AWS Lambda 函数的 API 调用

请参阅如何排查出现“Rate exceeded”(超出速率)和 429“TooManyRequestsException”错误时的 Lambda 函数节流问题?

针对 AWS Elastic Beanstalk 的 API 调用

请参阅如何解决 Elastic Beanstalk 中的 API 节流或“Rate Exceeded”(超出速率)错误?

相关信息

如何在 Amazon Athena 中自动创建表以搜索 AWS CloudTrail 日志?

AWS 官方已更新 3 个月前