我想要使用 Amazon Elastic Container Service (Amazon ECS) RunTask API 來啟動 AWS Fargate 任務。但由於容量不足,任務失敗。
簡短描述
如果 Amazon ECS 沒有足夠容量來啟動 Fargate 任務,則 RunTask API 會失敗並顯示以下錯誤訊息:
"Capacity is unavailable at this time. Please try again later or in a different availability zone"
若要對此錯誤進行疑難排解,請等待一段時間再重新嘗試 RunTask API。您也可以使用 AWS Step Functions 來自動化重試程序。
解決方法
稍後再重新嘗試 RunTask API。
以下做法可能會讓您在執行 RunTask 時獲得更多可用容量,並縮短等待時間:
自動化 RunTask API
若要自動化 RunTask API 的啟動及後續重試作業,請使用 Step Functions。
如果您從 Step Functions 啟動 RunTask,且該任務由於容量限制而失敗,Step Functions 會在其 ErrorEquals 欄位中記錄 ECS.AmazonECSException。您可以使用此資訊來設定未來的重試機制。
若要設定 Step Function 工作流程,請參閱使用 Step Functions 管理 Amazon ECS 或 Fargate 任務。有關更多 Step Functions 錯誤報告的資訊,請參閱 Step Functions 中的錯誤處理。
如果您經常從 Amazon EventBridge 呼叫 RunTask API,建議改為從 EventBridge 呼叫 Step Functions,以自動化您的重試機制。