我的 AWS Batch 任務失敗,並且收到「Getting error Too Many Requests」(出現錯誤:「請求次數太多」) 錯誤訊息。
簡短說明
AWS Batch 會根據帳戶的 AWS 區域來調節 AWS 帳戶的所有 API 請求。這樣可確保 AWS Batch 為所有客戶維持一致的效能和公平的使用情況。AWS Batch API 額度通常適用於每個 API,包括 DescribeJobs 和 SubmitJob 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 請求,藉此防止個別帳戶因太多請求而湧入服務端點。
- AWS 會確保所有 Amazon API 的所有呼叫都不會超過允許的 API 請求率上限。最高 API 請求率會因區域而異。
使用重試次數並搭配使用抖動和指數輪詢演算法,然後重新提交您的工作
如需詳細資訊,請參閱指數輪詢和抖動。
使用 AWS Batch 陣列任務透過單一提交任務 API 呼叫提交多個任務
如需詳細資訊,請參閱陣列工作和提交工作。
**注意:**AWS Batch 陣列任務可讓您提交最多 10,000 份任務副本。
調節 API 流量額度
您可以要求提高 AWS 帳戶的 API 限流額度。若要申請調整額度,請聯絡 AWS 支援中心