Amazon ECS 容器实例状态更改事件 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 容器实例状态更改事件

以下方案将引起容器实例状态更改事件:

您调用 StartTaskRunTaskStopTask API 操作(直接调用,或者通过 Amazon Web Services Management Console或开发工具包调用)。

在容器实例上放置或停止任务将修改容器实例上的可用资源(例如 CPU、内存和可用端口)。

Amazon ECS 服务调度器启动或停止任务。

在容器实例上放置或停止任务将修改容器实例上的可用资源(例如 CPU、内存和可用端口)。

针对状态为 RUNNING 的任务,Amazon ECS 容器代理调用状态为 STOPPEDSubmitTaskStateChange API 操作。

Amazon ECS 容器代理监控容器实例上的任务状态,并报告任何状态更改。如果应为 STOPPED 的任务转换为 RUNNING,则代理将释放分配给已停止任务的资源(例如 CPU、内存和可用端口)。

您可以使用 DeregisterContainerInstance API 操作(直接调用,或者通过 Amazon Web Services Management Console或开发工具包调用)注销容器实例。

注销容器实例将更改容器实例的状态以及 Amazon ECS 容器代理的连接状态。

EC2 实例停止后,任务也停止。

在停止容器实例时,该实例上运行的任务会转换为 STOPPED 状态。

Amazon ECS 容器代理首次注册容器实例。

当 Amazon ECS 容器代理首次注册容器实例(在启动时注册,或者在首次运行时手动注册)时,将为实例创建状态更改事件。

Amazon ECS Container 代理与 Amazon ECS 连接或断开连接。

当 Amazon ECS 容器代理与 Amazon ECS 后端连接或断开连接时,将更改容器实例的 agentConnected 状态。

注意

Amazon ECS 容器代理每小时断开连接并重新连接多次,这是其正常操作的一部分,因此代理连接事件应该是可以预期的。这些事件并不表示容器代理或容器实例存在问题。

升级实例上的 Amazon ECS 容器代理。

容器实例详细信息包含容器代理版本的对象。如果您升级代理,此版本信息将发生更改并且将生成事件。

例 容器实例状态更改事件

容器实例状态更改事件以下面的形式传送。下面的 detail 部分类似于从 Amazon Elastic Container Service API Reference 中的 DescribeContainerInstances API 操作返回的 ContainerInstance 对象。有关 EventBridge 参数更多信息,请参阅 Amazon EventBridge 用户指南事件和事件模式

{ "version": "0", "id": "8952ba83-7be2-4ab5-9c32-6687532d15a2", "detail-type": "ECS Container Instance State Change", "source": "aws.ecs", "account": "111122223333", "time": "2016-12-06T16:41:06Z", "region": "us-east-1", "resources": [ "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315" ], "detail": { "agentConnected": true, "attributes": [ { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" } ], "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "containerInstanceArn": "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315", "ec2InstanceId": "i-f3a8506b", "registeredResources": [ { "name": "CPU", "type": "INTEGER", "integerValue": 2048 }, { "name": "MEMORY", "type": "INTEGER", "integerValue": 3767 }, { "name": "PORTS", "type": "STRINGSET", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "stringSetValue": [] } ], "remainingResources": [ { "name": "CPU", "type": "INTEGER", "integerValue": 1988 }, { "name": "MEMORY", "type": "INTEGER", "integerValue": 767 }, { "name": "PORTS", "type": "STRINGSET", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "stringSetValue": [] } ], "status": "ACTIVE", "version": 14801, "versionInfo": { "agentHash": "aebcbca", "agentVersion": "1.13.0", "dockerVersion": "DockerVersion: 1.11.2" }, "updatedAt": "2016-12-06T16:41:06.991Z" } }