💻
ECSタスクスケジューラのトラブルシューティング
この記事は
ECSタスクをタスクスケジューラから動作させる時に、うまくいかなかったことがあったので、解決までに何を確認したかをまとめました
CloudWatchからメトリクスを確認
ECSタスクをタスクスケジューラから動作させる場合は、CloudWatchイベントルールを設定する必要がありますが、そのメトリクスからECSタスクの呼び出しに成功しているかどうかを確認できます。
**FailedInvocations ** データポイントが存在する場合は、ターゲットの権限に関連する問題がある可能性があります。EventBridge に ECS タスクを呼び出すための権限があることと、EventBridge AWS Identity and Access Management (IAM) ロールに必要な権限があることを確認してください。詳細については、「Amazon ECS EventBridge IAM ロール」を参照してください。
見事に呼び出しがされていませんでした。
CloudTrailを確認
イベント履歴からイベント名などで検索し、該当するログを確認します。
"eventName": "RunTask",
"awsRegion": "ap-northeast-1",
"sourceIPAddress": "events.amazonaws.com",
"userAgent": "events.amazonaws.com",
"errorCode": "InvalidParameterException",
"errorMessage": "Override for container named [コンテナ名] is not a container in the TaskDefinition."
私の場合、ContainerOverride
を使ってコンテナの実行コマンドを上書きし、任意のコマンドを実行するようにしていましたが、コンテナ名の指定が間違っていたため、起動に失敗していたようです。
コンテナ名を修正したところ、無事に起動されることが確認できました。
Discussion