如何找出哪個 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-table-name 取代為 CloudTrail 表格名稱。

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.    在查詢輸出中,識別與錯誤碼「ThrottlingException」相關聯的 eventnameeventsource 中列出的 API 呼叫。

根據相關聯的 API 呼叫和 AWS 服務對超過費率的錯誤進行疑難排解

注意: 超過費率錯誤可能會在不同的限流情況下發生,具體取決於您使用的 AWS 服務和 API 呼叫。

請參閱下列疑難排解說明文件,以瞭解與您收到的超過費率錯誤相關聯的 API 呼叫和服務:

適用於 GetResourceConfigHistory 或 ListDiscoveredResources API 呼叫

請參閱如何疑難排解 AWS Config 主控台錯誤訊息?

適用於 PutMetricData API 呼叫

請參閱當我呼叫 CloudWatch API 中的 PutMetricData 時如何避免限流?

適用於與 AWS Auto Scaling 相關聯的 API 呼叫

請參閱我的自動擴展 API 呼叫被限流。該如何才能避免發生這種情況?

請參閱適用於與 AWS Lambda 函數相關聯的 API 呼叫

請參閱如何對 Lambda 函數限流的「超過費率」和 429「TooManyRequestsException」錯誤進行疑難排解?

適用於與 AWS Elastic Beanstalk 相關聯的 API 呼叫

請參閱如何解決 Elastic Beanstalk 中的 API 限流或「超過費率」錯誤?

**注意:**您也可以透過新增 wait 陳述式,允許 AWS API 呼叫在限流發生後重試。如需詳細資訊,請參閱 AWS 中的錯誤重試和指數退避


相關資訊

如何在 Amazon Athena 中自動建立表格,以便透過 AWS CloudTrail 日誌進行搜尋?

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