Fargate タスクを作成するときに「Fargate では、ECR イメージをサポートするためにタスク定義に実行ロール ARN が必要です。」というメッセージが表示されるが、ロールは定義されている

Fargate タスクを作成するときに「Fargate では、ECR イメージをサポートするためにタスク定義に実行ロール ARN が必要です。」というメッセージが表示されるが、ロールは定義されている

非常にシンプルな Web アプリケーションを AWS Fargate にデプロイしようとしています。

アプリケーションのバックエンドの Docker イメージを ECR にプッシュし、コンテナの Fargate タスク定義を設定しようとしています。タスクのすべてのプロパティを定義し、設定は非常に簡単ですが、タスクが作成されず、常にエラーが発生します。

無効なリクエストが提供されました: TaskDefinition を作成: Fargate では、ECR イメージをサポートするためにタスク定義に実行ロール ARN が必要です。(サービス: AmazonECS、ステータス コード: 400、エラー コード: ClientException、リクエスト ID: 、プロキシ: null)" (RequestToken: 、HandlerErrorCode: InvalidRequest)

ECRイメージがあり、Fargateに必要なIAMロールを作成して選択していることはわかっています(このドキュメント) ですが、まだ文句を言っています。

当初は EC2 起動タイプでタスクを作成し、問題はありませんでしたが、コストとシンプルさの理由から Fargate 起動タイプを使用することにしました。

他に何をすればいいですか?

答え1

この問題に遭遇しましたが、AWS で解決できました。どうやら、タスク定義に GUI を使用するときに IAM ロールに関連付けられた権限を追加するとバグが発生するようです。

これを解決するには、Cloud Formationに移動して設定ファイルを指定します。失敗したタスク定義がそこに表示されます。タスク定義に関連付けられたスタックをクリックし、アップデート/デザイナーでテンプレートを編集する

JSONを編集してこれを追加します"TaskRoleArn": "your task role"

{
  […]
  "executionRoleArn" : "the-same-string-that-taskRoleArn-is-set-to"
  […]
}

それで問題は解決するはずです

答え2

これは新しい ECS UI のバグのようです。

左側のサイドバーから「新しい ECS エクスペリエンス」オプションのチェックを外して古い UI に戻すと、動作するはずです。

答え3

「更新」ボタンが無効になっています。有効にする方法や他の回避策はありますか?数日前にFargateサービス定義を作成できたので、Cloud Formationのテンプレートがあります。

関連情報