本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 任務狀態變更事件
下列案例會引發任務狀態變更事件:
- 您可以呼叫
StartTask
、RunTask
或StopTask
API 操作 (可直接或使用 AWS Management Console、 AWS CLI或軟體開發套件執行此動作)。 -
啟動或停止任務會建立新的任務資源,或修改現有任務資源的狀態。
- 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 Elastic Container Service API 參考中的 DescribeTasks API 操作所返回的 Task 物件。如果您的容器使用 Amazon ECR, 託管的映像,則會傳回 imageDigest
欄位。
注意
createdAt
、connectivityAt
、pullStartedAt
、startedAt
、pullStoppedAt
和 updatedAt
欄位的值是 DescribeTasks
動作之回應中的 UNIX 時間戳記,而在任務狀態變更事件中,這些值是 ISO 字串時間戳記。
如需 EventBridge 參數的詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的AWS 服務事件中繼資料。
如需如何設定 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"
}
}