Amazon ECS タスク状態変更イベント - Amazon Elastic Container Service

Amazon ECS タスク状態変更イベント

以下の場合は、タスク状態変更イベントが発生します。

ユーザーが StartTaskRunTaskStopTask API オペレーションを直接または AWS Management Console、AWS CLI、SDKs 経由で呼び出します。

タスクを開始または停止すると、新しいタスクリソースが作成されるか、既存のタスクリソースの状態が変更されます。

Amazon ECS サービススケジューラがタスクを開始または停止する。

タスクを開始または停止すると、新しいタスクリソースが作成されるか、既存のタスクリソースの状態が変更されます。

Amazon ECS コンテナエージェントが SubmitTaskStateChange API オペレーションを呼び出す。

Amazon EC2 起動タイプでは、Amazon ECS コンテナエージェントは、コンテナインスタンス上のタスクの状態をモニタリングします。Amazon ECS コンテナエージェントは、状態に変更があるとレポートします。状態の変更には、PENDING から RUNNING または RUNNING から STOPPED への変更が含まれます。

ユーザーが、DeregisterContainerInstance API オペレーションと force フラグを直接または AWS Management Console や SDKs. 経由で使用して、基盤となるコンテナインスタンスの登録解除を強制します。

コンテナインスタンスを登録解除すると、コンテナインスタンスのステータスと Amazon ECS コンテナエージェントの接続ステータスが変更されます。コンテナインスタンスでタスクが実行されている場合、登録解除を許可するには force フラグを設定する必要があります。これにより、インスタンスのすべてのタスクが停止します。

基盤となるコンテナインスタンスが停止または終了する。

コンテナインスタンスを停止または終了すると、このコンテナインスタンスで実行されているタスクのステータスは STOPPED に変わります。

タスクのコンテナの状態が変わる。

Amazon ECS コンテナエージェントは、タスク内のコンテナの状態をモニタリングします。例えば、タスク内で実行されているコンテナが停止すると、このコンテナの状態変更に伴ってイベントが生成されます。

Fargate Spot キャパシティープロバイダーを使用するタスクは、終了通知を受け取ります。

タスクが FARGATE_SPOT キャパシティープロバイダーを使用していて、スポットの中断により停止すると、タスク状態変更イベントが生成されます。

例 タスク状態変更イベント

タスク状態変更イベントは、次の形式で配信されます。以下の detail セクションは、「Amazon Elastic Container Service API リファレンス」の DescribeTasks API オペレーションから返される Task オブジェクトに似ています。コンテナが Amazon ECR でホストされているイメージを使用している場合は、imageDigest フィールドが返されます。

注記

createdAtconnectivityAtpullStartedAtstartedAtpullStoppedAtupdatedAt の各フィールド値は、DescribeTasks アクションのレスポンスでは UNIX タイムスタンプであり、タスク状態変更イベントでは ISO 文字列タイムスタンプです。

CloudWatch Events パラメータの詳細については、「Amazon EventBridge ユーザーガイド」の「イベントとイベントパターン」を参照してください。

必須コンテナのいずれかが終了したためにタスクの実行が停止した場合に限りタスクイベントをキャプチャする、Amazon EventBridge イベントルールを設定する方法の詳細については、「Amazon ECS タスク停止イベントに関する Amazon Simple Notification Service アラートの送信」を参照してください。

{ "version": "0", "id": "3317b2af-7005-947d-b652-f55e762e571a", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-01-23T17:57:58Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad" ], "detail": { "attachments": [ { "id": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-abcd1234" }, { "name": "networkInterfaceId", "value": "eni-abcd1234" }, { "name": "macAddress", "value": "0a:98:eb:a7:29:ba" }, { "name": "privateIPv4Address", "value": "10.0.0.139" } ] } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/FargateCluster", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:111122223333:container/cf159fd6-3e3f-4a9e-84f9-66cbe726af01", "lastStatus": "RUNNING", "name": "FargateApp", "image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/hello-repository:latest", "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6", "runtimeId": "ad64cbc71c7fb31c55507ec24c9f77947132b03d48d9961115cf24f3b7307e1e", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "networkInterfaces": [ { "attachmentId": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "privateIpv4Address": "10.0.0.139" } ], "cpu": "0" } ], "createdAt": "2020-01-23T17:57:34.402Z", "launchType": "FARGATE", "cpu": "256", "memory": "512", "desiredStatus": "RUNNING", "group": "family:sample-fargate", "lastStatus": "RUNNING", "overrides": { "containerOverrides": [ { "name": "FargateApp" } ] }, "connectivity": "CONNECTED", "connectivityAt": "2020-01-23T17:57:38.453Z", "pullStartedAt": "2020-01-23T17:57:52.103Z", "startedAt": "2020-01-23T17:57:58.103Z", "pullStoppedAt": "2020-01-23T17:57:55.103Z", "updatedAt": "2020-01-23T17:57:58.103Z", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "taskDefinitionArn": "arn:aws:ecs:us-west-2:111122223333:task-definition/sample-fargate:1", "version": 4, "platformVersion": "1.3.0" } }