本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 中斷而停止時,會產生任務狀態變更事件。
範例 任務狀態變更事件
任務狀態變更事件以下列格式交付。請注意下列有關欄位的事項:
-
任務狀態變更事件中無法使用事件的運作狀態。如果您需要任務運作狀態,您可以執行 describe-tasks。
-
當您的容器使用 Amazon ECR 託管的映像時,會傳回
imageDigest
欄位。 -
createdAt
、connectivityAt
、、pullStoppedAt
、pullStartedAt
startedAt
和updatedAt
欄位的值是 ISO 字串時間戳記。 -
detail-type
值為「ECS 任務狀態變更」。 -
為停止的任務產生事件時,
stoppedReason
和stoppedCode
欄位會提供任務停止原因的其他資訊 (例如,「使用者啟動」)。
如需 EventBridge 參數的詳細資訊,請參閱《Amazon EventBridge Events Reference》中的AWS 服務事件中繼資料。
如需如何設定 Amazon EventBridge 事件規則的資訊,該規則只會擷取任務因其中一個基本容器終止而停止執行的任務事件,請參閱 傳送 Amazon ECS 任務已停止事件的 Amazon Simple Notification Service 提醒
{
"version": "0",
"id": "105f6bb1-4da6-c630-4965-35383018cbca",
"detail-type": "ECS Task State Change",
"source": "aws.ecs",
"account": "123456789012",
"time": "2025-05-06T11:02:34Z",
"region": "us-east-1",
"resources": [
"arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9"
],
"detail": {
"attachments": [
{
"id": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
"type": "eni",
"status": "ATTACHED",
"details": [
{
"name": "subnetId",
"value": "subnet-0d0eab1bb38d5ca64"
},
{
"name": "networkInterfaceId",
"value": "eni-0103a2f01bad57d71"
},
{
"name": "macAddress",
"value": "0e:50:d1:c1:77:81"
},
{
"name": "privateDnsName",
"value": "ip-10-0-1-163.ec2.internal"
},
{
"name": "privateIPv4Address",
"value": "10.0.1.163"
}
]
}
],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"capacityProviderName": "FARGATE",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster",
"connectivity": "CONNECTED",
"connectivityAt": "2025-05-06T11:02:17.19Z",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a0a99b87-baa8-4bf6-b9f1-a9a95917a635",
"lastStatus": "RUNNING",
"name": "web",
"image": "nginx",
"imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66",
"runtimeId": "a1173316d40a45dea9-0265927825",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
"networkInterfaces": [
{
"attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
"privateIpv4Address": "10.0.1.163"
}
],
"cpu": "99",
"memory": "100"
},
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a2010e2d-ba7c-4135-8b79-e0290ff3cd8c",
"lastStatus": "RUNNING",
"name": "aws-guardduty-agent-nm40lC",
"imageDigest": "sha256:bf9197abdf853607e5fa392b4f97ccdd6ca56dd179be3ce8849e552d96582ac8",
"runtimeId": "a1173316d40a45dea9-2098416933",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
"networkInterfaces": [
{
"attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
"privateIpv4Address": "10.0.1.163"
}
],
"cpu": "null"
},
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/dccf0ca2-d929-471f-a5c3-98006fd4379e",
"lastStatus": "RUNNING",
"name": "aws-otel-collector",
"image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0",
"imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640",
"runtimeId": "a1173316d40a45dea9-4027662657",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
"networkInterfaces": [
{
"attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
"privateIpv4Address": "10.0.1.163"
}
],
"cpu": "0"
}
],
"cpu": "256",
"createdAt": "2025-05-06T11:02:13.877Z",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"ephemeralStorage": {
"sizeInGiB": 20
},
"group": "family:webserver",
"launchType": "FARGATE",
"lastStatus": "RUNNING",
"memory": "512",
"overrides": {
"containerOverrides": [
{
"name": "web"
},
{
"environment": [
{
"name": "CLUSTER_NAME",
"value": "example-cluster"
},
{
"name": "REGION",
"value": "us-east-1"
},
{
"name": "HOST_PROC",
"value": "/host_proc"
},
{
"name": "AGENT_RUNTIME_ENVIRONMENT",
"value": "ecsfargate"
},
{
"name": "STAGE",
"value": "prod"
}
],
"memory": 128,
"name": "aws-guardduty-agent-nm40lC"
},
{
"name": "aws-otel-collector"
}
]
},
"platformVersion": "1.4.0",
"pullStartedAt": "2025-05-06T11:02:24.162Z",
"pullStoppedAt": "2025-05-06T11:02:33.493Z",
"startedAt": "2025-05-06T11:02:34.325Z",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:5",
"updatedAt": "2025-05-06T11:02:34.325Z",
"version": 3
}
}
以下是 EC2 啟動類型的任務狀態變更事件範例。
{
"version": "0",
"id": "a65cf262-f104-0dd5-ceda-4b09ba71a441",
"detail-type": "ECS Task State Change",
"source": "aws.ecs",
"account": "123456789012",
"time": "2025-05-12T13:12:06Z",
"region": "us-east-1",
"resources": [
"arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d"
],
"detail": {
"attachments": [
{
"id": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
"type": "eni",
"status": "ATTACHED",
"details": [
{
"name": "subnetId",
"value": "subnet-0d0eab1bb38d5ca64"
},
{
"name": "networkInterfaceId",
"value": "eni-0ea90f746500773a4"
},
{
"name": "macAddress",
"value": "0e:d5:9b:ce:49:fb"
},
{
"name": "privateDnsName",
"value": "ip-10-0-1-37.ec2.internal"
},
{
"name": "privateIPv4Address",
"value": "10.0.1.37"
}
]
}
],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"capacityProviderName": "Infra-ECS-Cluster-example-fa84e0cc-AsgCapacityProvider-OseQJU9pizmp",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example",
"connectivity": "CONNECTED",
"connectivityAt": "2025-05-12T13:11:44.98Z",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/example/d1d84798400f49f3b21cb61610c1e",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/197d0994-5367-4a6d-9f9a-f075e4a6",
"lastStatus": "RUNNING",
"name": "aws-otel-collector",
"image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0",
"imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640",
"runtimeId": "8e926f0ccd8fe2b459926f49584ba6d33a3d9f61398dbabe944ee6a13a8ff3a1",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
"networkInterfaces": [
{
"attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
"privateIpv4Address": "10.0.1.37"
}
],
"cpu": "0"
},
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/cab39ef0-9c50-459d-844b-b9d51d73d",
"lastStatus": "RUNNING",
"name": "web",
"image": "nginx",
"imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66",
"runtimeId": "9f1c73f0094f051541d9e5c2ab1e172d83c4eb5171bcc857c4504b02770ff3b8",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
"networkInterfaces": [
{
"attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
"privateIpv4Address": "10.0.1.37"
}
],
"cpu": "99",
"memory": "100"
}
],
"cpu": "256",
"createdAt": "2025-05-12T13:11:44.98Z",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"group": "family:webserver",
"launchType": "EC2",
"lastStatus": "RUNNING",
"memory": "512",
"overrides": {
"containerOverrides": [
{
"name": "aws-otel-collector"
},
{
"name": "web"
}
]
},
"pullStartedAt": "2025-05-12T13:11:59.491Z",
"pullStoppedAt": "2025-05-12T13:12:05.896Z",
"startedAt": "2025-05-12T13:12:06.053Z",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver",
"updatedAt": "2025-05-12T13:12:06.053Z",
"version": 4
}
}