Amazon ECS 服务操作事件 - Amazon Elastic Container Service

Amazon ECS 服务操作事件

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

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

TASKS_STOPPED

该服务已停止正在运行的任务。

SERVICE_DEPLOYMENT_IN_PROGRESS

正在进行服务部署。服务部署可以是回滚,也可以是新的服务修订。

SERVICE_DEPLOYMENT_COMPLETED

服务部署处于稳定状态并且已完成。服务部署可以是回滚,也可以是部署更新的服务修订。

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

SERVICE_TASK_START_IMPAIRED

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

SERVICE_DISCOVERY_INSTANCE_UNHEALTHY

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

VPC_LATTICE_TARGET_UNHEALTHY

使用 VPC Lattice 的服务检测到 VPC Lattice 的一个目标运行状况不佳。

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

SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED

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

ECS_OPERATION_THROTTLED

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

SERVICE_DISCOVERY_OPERATION_THROTTLED

由于 AWS 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 角色所提供的任务。

SERVICE_HEALTH_UNKNOWN

该服务无法描述任务的运行状况数据。

SERVICE_DEPLOYMENT_FAILED

服务部署未达到稳定状态。当 CloudWatch 被触发或断路器检测到服务部署失败时,就会发生这种情况。

例 服务稳定状态事件

服务稳定状态事件以下面的形式传送。有关 EventBridge 参数更多信息,请参阅《Amazon EventBridge 用户指南》中的 Events in 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" } }
例 服务任务放置失败事件

服务任务放置失败事件以下面的形式传送。有关更多信息,请参阅《Amazon EventBridge 用户指南》中的 Events in 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" } }