我的 AWS Batch 任務失敗,並且收到「Getting error Too Many Requests」(出現錯誤:「請求次數太多」) 錯誤訊息。
簡短說明
AWS Batch 會根據帳戶的 AWS 區域來調節 AWS 帳戶的所有 API 請求。此動作可維持一致的效能,並為所有客戶提供公平的使用情況。
AWS Batch API 額度通常適用於每個 API,包括 DescribeJobs 和 SubmitJob API 呼叫。
注意: AWS Batch API 呼叫 包含SubmitJob 作業在內,每個帳戶每秒的最大交易數 (TPS) 為 50。這是一個固定的限制。
當您達到 AWS Batch API 額度時,AWS Batch 會傳回下列錯誤訊息:
「Getting error Too Many Requests (Service: AWSBatch; Status Code: 429; Error Code: TooManyRequestsException).」(出現錯誤:「請求次數太多」(服務:AWSBatch;狀態代碼:429;錯誤代碼:TooManyRequestsException))
發生 Getting error Too Many Requests (出現錯誤:「請求次數太多」) 錯誤有兩個常見原因:
- 透過 AWS Command Line Interface (CLI) 或 AWS SDK,使用程式設計的方式同時提交多個任務。
- 您使用 AWS Lambda 提交多個任務。
注意: API 額度僅適用於 AWS 端點。這些額度不適用於您的帳戶。
AWS 會確保所有 Amazon API 的所有呼叫都不會超過允許的 API 請求率上限。API 請求率上限可能會因區域而有所不同
解決方法
使用重試次數並搭配使用抖動的指數退避演算法,然後重新提交您的工作
如需詳細資訊,請參閱指數輪詢和抖動。
使用 AWS Batch 陣列任務透過單一提交任務 API 呼叫提交多個任務
如需詳細資訊,請參閱陣列工作和提交工作。
注意: AWS Batch 陣列任務可讓您在一個 API 呼叫中提交最多 10,000 份任務副本。