Amazon ECS 任務狀態變更事件 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 任務狀態變更事件

下列案例會引發任務狀態變更事件:

您可以直接呼叫StartTaskRunTask、或StopTaskAPI作業,或使用 AWS Management Console AWS CLI、或SDKs。

啟動或停止任務會建立新的任務資源,或修改現有任務資源的狀態。

Amazon ECS 服務調度程序啟動或停止任務。

啟動或停止任務會建立新的任務資源,或修改現有任務資源的狀態。

Amazon ECS 容器代理調用SubmitTaskStateChangeAPI操作。

對於 Amazon EC2 啟動類型,Amazon ECS 容器代理程式會監控容器執行個體上的任務狀態。Amazon ECS 容器代理程式會報告任何狀態變更。狀態變更可能包括從 PENDINGRUNNING 或從 RUNNINGSTOPPED 的變更。

您可以直接或使用或強制使用DeregisterContainerInstanceAPI作業和force旗標來取消註冊基礎容器執行個體。 AWS Management Console SDKs

取消註冊容器執行個體會變更容器執行個體的狀態和 Amazon ECS 容器代理程式的連線狀態。如果任務是在容器執行個體上執行,則必須將 force 旗標設定為允許取消登錄。這會停止執行個體上的所有任務。

停止或終止基礎容器執行個體。

當您停止或終止容器執行個體時,在其上執行的任務會轉換為 STOPPED 狀態。

任務中的容器變更狀態。

Amazon ECS 容器代理程式可監控任務內容器的狀態。例如,如果任務內的執行容器停止,則此容器狀態變更會產生事件。

使用 Fargate Spot 容量提供者的任務會收到終止通知。

當任務使用 FARGATE_SPOT 容量提供者且因 Spot 中斷而停止時,會產生任務狀態變更事件。

範例 任務狀態變更事件

任務狀態變更事件以下列格式交付。以下detail部分類似於從 Amazon 彈性容器服務API參考中的DescribeTasksAPI作業傳回的物件。如果您的容器使用 Amazon 託管的映像檔ECR,則會傳回imageDigest欄位。

注意

createdAt、、connectivityAtpullStartedAtstartedAt、和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" } }