如何對 API Gateway "429 Too Many Requests" (429 請求太多) 或 "Limit Exceeded" (超出限制) 錯誤進行疑難排解?

1 分的閱讀內容
0

在向 Amazon API Gateway API 傳送請求時,收到 "429 Too Many Requests" (429 請求太多) 或 "Limit Exceeded" (超出限制) 錯誤訊息。如何對這些錯誤進行疑難排解?

簡短描述

API Gateway 在每個區域具有帳戶層級配額。限流配額為每秒 10,000 個請求 (RPS),並由字符儲存貯體演算法提供額外的高載容量。每個帳戶和區域的最大儲存貯體容量為 5,000 個請求。會依下列順序套用 API Gateway 限流相關設定:

超過限流或配額會傳回 "429 Too Many Requests" (429 請求太多) 或 "Limit Exceeded" (超出限制) 錯誤回應。

如需詳細資訊,請參閱如何在 API Gateway 中套用限流設定

解決方案

在開始之前,確認您已遵循指示開啟 Amazon CloudWatch Logs 以進行 API 閘道疑難排解。確認選擇 ERROR (錯誤),僅針對導致錯誤的 API 請求產生執行日誌。然後,使用 CloudWatch 主控台檢視記錄的 API 要求和回應

"429 Too Many Requests" (429 請求太多) 錯誤

針對您為用量方案 API 階段設定的每個用戶端或每種方法的限流,檢查速率或高載限制。超過速率或高載限制時,CloudWatch 執行會記錄類似下列內容超出限流錯誤:

(f277a0b4-2bcd-41b3-8e43-4de770663ffb) API Key 
**********************************
F0yrv6 exceeded throttle limit for API
 Stage rohkz08x02/dev: Key throttle limit exceeded for Usage Plan ID 
nnpegc, RestApi rohkz08x02, Stage dev, Resource f646q2, HttpMethod GET. 
Limit: 5.00 Burst: 10

若要解決此錯誤,請使用含抖動的重試和指數退避演算法,然後重新提交 API 要求。

如需詳細資訊,請參閱指數退避和抖動

"Limit Exceeded" (超出限制) 錯誤

此錯誤可能指示 API 閘道用量方案超出配額限制。超出配額限制時,CloudWatch 執行會記錄類似下列內容的超出配額限制錯誤:

(7b819c41-e0a0-433a-883e-bc461fd70fd6) API Key 
**********************************
F0yrv6 exceeded quota limit for API 
Stage rohkz08x02/dev: Key quota exhausted for Usage Plan ID nnpegc. Q
Limit: 500 Period: DAY

若要解決此錯誤,請遵循指示延長剩餘的配額


相關資訊

如何對具有 "Rate exceeded" (速率超出) 和 429 「TooManyRequestsException」錯誤的 Lambda 函數限流進行疑難排解?

如何在 CloudWatch Logs 中尋找 API Gateway REST API 錯誤?

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