如何找出哪个 AWS API 调用导致了“超出速率”错误?

2 分钟阅读
0

我在尝试创建、更新或访问 AWS 服务时收到“超出速率”错误消息。如何确定哪个 AWS API 调用导致了该错误?

简短描述

要确定哪个 API 调用在您的 AWS 账户中导致了超出速率错误,请执行以下操作:

1.    为 AWS CloudTrail 日志创建 Amazon Athena 表

2.    运行 Amazon Athena 查询,查找与超出速率错误关联的 API 调用。

要解决此问题,请参阅本文的基于关联的 API 调用和 AWS 服务对超出速率错误进行故障排除部分。

**注意:**要记录您的 AWS 账户中的 API 活动,您必须先在 CloudTrail 中创建跟踪记录。在您创建跟踪记录之前,您的账户中发生的任何数据事件都不会被跟踪记录。

解决方法

为 CloudTrail 日志创建 Amazon Athena 表

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

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

1.    打开 Athena 控制台

2.    选择新建查询选项卡。

3.    将以下示例查询复制并粘贴到查询文本框中,然后选择运行查询

**重要提示:**使用您的 CloudTrail 表的名称替换 cloudtrail-table-name

select eventname, errorcode,eventsource,awsregion, useragent,COUNT(*) 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;

4.    在查询输出中,确定 eventnameeventsource 中列出的与 errorcode“ThrottlingException”关联的 API 调用。

根据关联的 API 调用和 AWS 服务对超出速率错误进行故障排除

注意:****超出速率错误可能在不同的节流条件下发生,具体取决于您使用的 AWS 服务和 API 调用。

请参阅以下问题排查文档,了解与您收到的超出速率错误关联的 API 调用和服务:

对于 GetResourceConfigHistory 或 ListDiscoveredResources API 调用

请参阅如何解决 AWS Config 控制台错误消息问题?

对于 PutMetricData API 调用

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

对于与 AWS Auto Scaling 相关的 API 调用

请参阅我的 Auto Scaling API 调用被节流。如何避免出现此情况?

对于与 AWS Lambda 函数相关的 API 调用

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

对于与 AWS Elastic Beanstalk 相关的 API 调用

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

**注意:**您也可以添加 wait 语句,以便在发生节流问题后允许 AWS API 调用进行重新尝试。有关更多信息,请参阅 AWS 中的错误重试和指数回退


相关信息

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

相关视频

AWS 官方
AWS 官方已更新 2 年前