我正在嘗試將一個非常簡單的 Web 應用程式部署到 AWS Fargate。
我已將應用程式後端的 docker 映像推送到 ECR,並嘗試為容器設定 Fargate 任務定義。我定義了任務的所有屬性,設定相當簡單,但任務不會創建,我總是收到錯誤:
提供的請求無效:建立任務定義:Fargate 要求任務定義具有執行角色 ARN 以支援 ECR 映像。 (服務:AmazonECS;狀態代碼:400;錯誤代碼:ClientException;請求 ID:;代理:null)」(RequestToken:,HandlerErrorCode:InvalidRequest)
我知道我有一個 ECR 映像,我已經建立並選擇了 Fargate 想要的 IAM 角色(使用本文檔)但它仍然抱怨。
我最初使用 EC2 啟動類型建立任務,沒有出現任何問題,但出於成本和簡單性原因,決定使用 Fargate 啟動類型。
我還需要做什麼?
答案1
我剛剛遇到了這個問題,並透過 AWS 解決了它。顯然,在使用 GUI 進行任務定義時新增與 IAM 角色關聯的權限時存在錯誤。
要解決此問題,您可以轉到雲端形成並在那裡指定設定檔。您應該在那裡看到失敗的任務定義。點擊與您的任務定義關聯的堆疊並選擇更新/在設計器中編輯模板。
編輯 JSON 並將其添加到下面"TaskRoleArn": "your task role"
{
[…]
"executionRoleArn" : "the-same-string-that-taskRoleArn-is-set-to"
[…]
}
這應該可以解決你的問題
答案2
這似乎是新 ECS UI 中的一個錯誤。
透過取消選取左側邊欄中的「新 ECS 體驗」選項來切換回舊 UI,它應該可以運作。
答案3
“更新”按鈕對我來說已停用。有什麼想法如何啟用它或其他解決方法嗎?幾天前我能夠創建 Fargate 服務定義,因此我有來自雲端形成的模板