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

Amazon ECS 服务操作事件

Amazon ECS 发送具有详细信息类型 ECS Service Action 的服务操作事件。与容器实例和任务状态更改事件不同,服务操作事件在 details 响应字段中不包含版本号。以下是用于为 Amazon ECS 服务操作事件创建 EventBridge 规则的事件模式。有关更多信息,请参阅 Amazon EventBridge 用户指南中的创建 EventBridge 规则

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Service Action" ] }

Amazon ECS 发送具有 INFOWARN, and ERROR 事件类型的事件。以下是服务操作事件。

具有 INFO 事件类型的服务操作事件

SERVICE_STEADY_STATE

服务正常运行且任务数量为期望值,从而达到稳定状态。服务调度器会定期报告状态,因此您可能会多次收到此消息。

TASKSET_STEADY_STATE

任务集正常且任务数量为期望值,从而达到稳定状态。

CAPACITY_PROVIDER_STEADY_STATE

与服务关联的容量提供程序达到稳定状态。

SERVICE_DESIRED_COUNT_UPDATED

当服务计划程序为服务或任务集更新计算的期望计数时。当用户手动更新期望计数时,不会发送此事件。

具有 WARN 事件类型的服务操作事件

SERVICE_TASK_START_IMPAIRED

该服务无法始终如一地成功启动任务。

SERVICE_DISCOVERY_INSTANCE_UNHEALTHY

使用服务发现的服务包含运行状况不佳的任务。服务计划程序检测到服务注册表中的任务运行状况不佳。

具有 ERROR 事件类型的服务操作事件

SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED

使用 DAEMON 服务计划程序策略的服务中的任务不再符合服务的放置约束策略。

ECS_OPERATION_THROTTLED

由于 Amazon ECS API 节流限制,服务计划程序已被限制。

SERVICE_DISCOVERY_OPERATION_THROTTLED

由于 Amazon Cloud Map API 节流限制,服务计划程序已被限制。配置为使用服务发现的服务可能会发生这种情况。

SERVICE_TASK_PLACEMENT_FAILURE

服务计划程序无法放置任务。原因将在 reason 字段中描述。

生成此服务事件的常见原因是集群中缺乏放置任务的资源。例如,可用容器实例上的 CPU 或内存容量不足,或者没有容器实例可用。另一个常见原因是 Amazon ECS 容器代理在容器实例上断开连接,导致计划程序无法放置任务。

SERVICE_TASK_CONFIGURATION_FAILURE

由于配置错误,服务计划程序无法放置任务。原因将在 reason 字段中描述。

生成此服务事件的一个常见原因是,标签已应用于服务,但用户或角色尚未在区域中选择采用新的 Amazon 资源名称(ARN)格式。有关更多信息,请参阅 Amazon Resource Names (ARN) 和 ID。另一个常见原因是 Amazon ECS 无法承担 IAM 角色所提供的任务。

例 服务稳定状态事件

服务稳定状态事件以下面的形式传送。有关 EventBridge 参数更多信息,请参阅 Amazon EventBridge 用户指南事件和事件模式

{ "version": "0", "id": "af3c496d-f4a8-65d1-70f4-a69d52e9b584", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:27:22Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:27:22.695Z" } }
例 容量提供程序稳定状态事件

容量提供程序稳定状态事件以下面的形式传送。

{ "version": "0", "id": "b9baa007-2f33-0eb1-5760-0d02a572d81f", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:37:00Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "CAPACITY_PROVIDER_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/ASG-tutorial-capacity-provider" ], "createdAt": "2019-11-19T19:37:00.807Z" } }
例 服务任务启动受损事件

服务任务启动受损事件以下面的形式传送。

{ "version": "0", "id": "57c9506e-9d21-294c-d2fe-e8738da7e67d", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "WARN", "eventName": "SERVICE_TASK_START_IMPAIRED", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:55:38.725Z" } }
例 服务任务放置失败事件

服务任务放置失败事件以下面的形式传送。有关 EventBridge 参数更多信息,请参阅 Amazon EventBridge 用户指南事件和事件模式

在以下示例中,任务试图使用 FARGATE_SPOT 容量提供程序,但服务计划程序无法获取任何 Fargate Spot 容量。

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/FARGATE_SPOT" ], "reason": "RESOURCE:FARGATE", "createdAt": "2019-11-06T19:09:33.087Z" } }

在以下 EC2 启动类型的示例中,任务尝试在容器实例 2dd1b186f39845a584488d2ef155c131 上启动,但是由于 CPU 不足,服务调度器无法放置任务。

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "containerInstanceArns": [ "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131" ], "reason": "RESOURCE:CPU", "createdAt": "2019-11-06T19:09:33.087Z" } }