Amazon EC2 任务状态更改事件
以下方案将引起任务状态更改事件:
- 您调用
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或开发工具包调用)强制取消注册基础容器实例。 -
注销容器实例将更改容器实例的状态以及 Amazon ECS 容器代理的连接状态。如果任务正在容器实例上运行,则必须设置
force
标志以允许取消注册。这将停止实例上的所有任务。 - 停止或终止基础容器实例。
-
在停止或终止容器实例时,该实例上运行的任务会转换为
STOPPED
状态。 - 任务中的容器状态发生更改。
-
Amazon ECS 容器代理监控任务中的容器状态。例如,如果在任务中运行的容器停止,则此容器状态更改将生成事件。
- 使用 Fargate Spot 容量提供程序的任务会收到终止通知。
-
当任务正在使用
FARGATE_SPOT
容量提供程序并且由于 Spot 中断而停止时会生成任务状态更改事件。
例 任务状态更改事件
任务状态更改事件以下面的形式传送。下面的 detail
部分类似于 Amazon Elastic Container Service API Reference 中的 DescribeTasks API 操作返回的任务对象。如果您的容器使用通过 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"
}
}