本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
容量提供者且因 Spot 中斷而停止時,會產生任務狀態變更事件。
範例 任務狀態變更事件
任務狀態變更事件以下列格式交付。以下detail
部分類似於從 Amazon 彈性容器服務API參考中的DescribeTasksAPI作業傳回的任務物件。如果您的容器使用 Amazon 託管的映像檔ECR,則會傳回imageDigest
欄位。
注意
createdAt
、、connectivityAt
pullStartedAt
startedAt
、和updatedAt
欄位的值是動作回應中的UNIX時間戳記pullStoppedAt
,而在工DescribeTasks
作狀態變更事件中,它們是ISO字串時間戳記。
如需有關 CloudWatch 事件參數的詳細資訊,請參閱 Amazon EventBridge 使用者指南中的事件和事件模式。
如需有關如何設定 Amazon EventBridge 事件規則,該規則僅擷取任務因其中一個基本容器已終止而停止執行的任務事件的資訊,請參閱 發送 Amazon 簡單通知服務警報 Amazon ECS 任務停止事件
{
"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"
}
}