Amazon ECS タスク状態変更イベント
以下の場合は、タスク状態変更イベントが発生します。
- ユーザーが
StartTask
、RunTask
、StopTask
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
フィールドが返されます。
注記
createdAt
、connectivityAt
、pullStartedAt
、startedAt
、pullStoppedAt
、updatedAt
の各フィールド値は、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"
}
}