

# 进程守护程序事件
<a name="managed-daemons-events"></a>

Amazon ECS 发送进程守护程序事件，以提供进程守护程序任务管理和部署生命周期更改的可见性。您可以使用这些事件来监控进程守护程序运行状况、跟踪部署进度并触发自动化工作流程。

Amazon ECS 支持以下进程守护程序事件类型：
+ [进程守护程序服务操作事件](#managed-daemons-service-action-events) - 与进程守护程序任务置放和启动问题相关的事件。
+ [进程守护程序部署状态更改事件](#managed-daemons-deployment-state-change-events) - 与进程守护程序部署生命周期转换相关的事件。

要了解如何为这些事件创建规则，请参阅 [创建进程守护程序事件的规则](#managed-daemons-eventbridge-rules)。

## 进程守护程序服务操作事件
<a name="managed-daemons-service-action-events"></a>

Amazon ECS 发送具有详细信息类型 `ECS Daemon Service Action` 的进程守护程序服务操作事件。这些事件会在 Amazon ECS 在您的容器实例上启动进程守护程序任务遇到问题时向您发出通知。

### DAEMON\_TASK\_START\_IMPAIRED
<a name="managed-daemons-event-start-impaired"></a>

当 Amazon ECS 无法在容器实例上成功启动进程守护程序任务时，它会发送 `DAEMON_TASK_START_IMPAIRED` 事件。该事件包括一个指示失败原因的 `failureType` 字段：
+ `TASK_FAILED_TO_RUN` - 进程守护程序任务已创建，但未能达到 `RUNNING` 状态。常见原因包括容器映像拉取失败、容器运行状况检查失败或必备容器退出。`taskArn` 字段存在于事件中。
+ `TASK_CREATION_FAILED` - 无法在容器实例上创建进程守护程序任务。常见原因包括实例上的 CPU、内存或其他资源不足。`taskArn` 字段在事件中不存在，因为未创建任务。

### 示例：TASK\_FAILED\_TO\_RUN 事件
<a name="managed-daemons-event-example-task-failed"></a>

以下事件显示了已创建但由于容器映像拉取失败而未能达到 `RUNNING` 状态的进程守护程序任务。

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "ECS Daemon Service Action",
    "source": "aws.ecs",
    "account": "{{123456789012}}",
    "time": "2026-03-24T12:00:00Z",
    "region": "{{us-west-2}}",
    "resources": [
        "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:task/{{my-cluster}}/{{a1b2c3d4e5f6}}"
    ],
    "detail": {
        "eventType": "WARNING",
        "eventName": "DAEMON_TASK_START_IMPAIRED",
        "clusterArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:cluster/{{my-cluster}}",
        "containerInstanceArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:container-instance/{{my-cluster}}/{{a1b2c3d4e5f6}}",
        "taskArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:task/{{my-cluster}}/{{a1b2c3d4e5f6}}",
        "daemonRevisionArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon-revision/{{my-cluster}}/{{my-daemon}}/{{a1b2c3d4-e5f6-7890-abcd-ef1234567890}}",
        "capacityProviderName": "{{my-capacity-provider}}",
        "daemonArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon/{{my-cluster}}/{{my-daemon}}",
        "daemonTaskDefinitionArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon-task-definition/{{my-daemon-td}}:1",
        "failureType": "TASK_FAILED_TO_RUN",
        "createdAt": "2026-03-24T12:00:00.000Z",
        "reason": "Task failed to reach RUNNING status: CannotPullContainerError: pull image manifest has been retried 5 time(s)"
    }
}
```

### 示例：TASK\_CREATION\_FAILED 事件
<a name="managed-daemons-event-example-creation-failed"></a>

以下事件显示了由于 CPU 资源不足而无法在容器实例上创建的进程守护程序任务。`taskArn` 字段不存在，因为未创建任务。

```
{
    "version": "0",
    "id": "87654321-4321-4321-4321-210987654321",
    "detail-type": "ECS Daemon Service Action",
    "source": "aws.ecs",
    "account": "{{123456789012}}",
    "time": "2026-03-24T12:01:00Z",
    "region": "{{us-west-2}}",
    "resources": [],
    "detail": {
        "eventType": "WARNING",
        "eventName": "DAEMON_TASK_START_IMPAIRED",
        "clusterArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:cluster/{{my-cluster}}",
        "containerInstanceArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:container-instance/{{my-cluster}}/{{b2c3d4e5f6a7}}",
        "daemonRevisionArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon-revision/{{my-cluster}}/{{my-daemon}}/{{a1b2c3d4-e5f6-7890-abcd-ef1234567890}}",
        "capacityProviderName": "{{my-capacity-provider}}",
        "daemonArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon/{{my-cluster}}/{{my-daemon}}",
        "daemonTaskDefinitionArn": "arn:aws:ecs:{{us-west-2}}:{{123456789012}}:daemon-task-definition/{{my-daemon-td}}:1",
        "failureType": "TASK_CREATION_FAILED",
        "createdAt": "2026-03-24T12:01:00.000Z",
        "reason": "RESOURCE:CPU - Unable to place daemon task on container instance: insufficient CPU"
    }
}
```

## 进程守护程序部署状态更改事件
<a name="managed-daemons-deployment-state-change-events"></a>

Amazon ECS 发送详细信息类型为 `ECS Daemon Deployment State Change` 的进程守护程序部署状态更改事件。每当进程守护程序部署状态发生更改时，Amazon ECS 都会发出这些事件。

### 部署状态更改事件类型
<a name="managed-daemons-deploy-event-types"></a>

Amazon ECS 按以下事件类型对部署状态更改事件进行分类：

**INFO 事件**
+ `DAEMON_DEPLOYMENT_PENDING` - Amazon ECS 已启动进程守护程序部署。
+ `DAEMON_DEPLOYMENT_IN_PROGRESS` - Amazon ECS 已开始部署，并且正在积极替换进程守护程序任务。
+ `DAEMON_DEPLOYMENT_SUCCESSFUL` - Amazon ECS 已成功完成部署，所有进程守护程序任务均在运行且运行正常。
+ `DAEMON_DEPLOYMENT_STOPPED` - Amazon ECS 已停止部署。这种情况在部署失败或者被新的部署所替代时出现。
+ `DAEMON_DEPLOYMENT_STOP_REQUESTED` - Amazon ECS 已停止部署的推进进程，并将开始进行回滚操作。
+ `DAEMON_DEPLOYMENT_ROLLBACK_IN_PROGRESS` - Amazon ECS 已因部署失败或断路器触发而启动了回滚操作。
+ `DAEMON_DEPLOYMENT_ROLLBACK_SUCCESSFUL` - Amazon ECS 已成功完成部署回滚操作。

**ERROR 事件**
+ `DAEMON_DEPLOYMENT_ROLLBACK_FAILED` - Amazon ECS 无法完成部署回滚操作。

### 示例：部署待处理事件
<a name="managed-daemons-deploy-event-example"></a>

以下事件显示了 Amazon ECS 已启动的进程守护程序部署。

```
{
    "version": "0",
    "id": "3329f79b-3dca-07f8-b1c2-5fe99f0b5e87",
    "detail-type": "ECS Daemon Deployment State Change",
    "source": "aws.ecs",
    "account": "{{111122223333}}",
    "time": "2026-03-05T15:54:41Z",
    "region": "{{us-west-2}}",
    "resources": [
        "arn:aws:ecs:{{us-west-2}}:{{111122223333}}:daemon/{{my-cluster}}/{{my-daemon}}"
    ],
    "detail": {
        "eventType": "INFO",
        "eventName": "DAEMON_DEPLOYMENT_PENDING",
        "clusterArn": "arn:aws:ecs:{{us-west-2}}:{{111122223333}}:cluster/{{my-cluster}}",
        "daemonArn": "arn:aws:ecs:{{us-west-2}}:{{111122223333}}:daemon/{{my-cluster}}/{{my-daemon}}",
        "daemonDeploymentArn": "arn:aws:ecs:{{us-west-2}}:{{111122223333}}:daemon-deployment/{{my-cluster}}/{{my-daemon}}/{{0EYSiB0qap8xf0N76FsbE}}",
        "targetDaemonRevisionArn": "arn:aws:ecs:{{us-west-2}}:{{111122223333}}:daemon-revision/{{my-cluster}}/{{my-daemon}}/{{85707969-3732-4b6a-a37d-5cefddd7d7dd}}",
        "updatedAt": "2026-03-05T15:54:41.618059641Z"
    }
}
```

## 创建进程守护程序事件的规则
<a name="managed-daemons-eventbridge-rules"></a>

您可以创建规则，以便在发生进程守护程序事件时接收通知。有关创建规则的更多信息，请参阅《Amazon EventBridge 用户指南》**中的[创建规则](https://docs.amazonaws.cn/eventbridge/latest/userguide/eb-create-rule.html)。

以下示例事件模式显示了如何对进程守护程序事件进行筛选。

### 示例：匹配所有的进程守护程序服务操作事件
<a name="managed-daemons-rule-all-service-action"></a>

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

### 示例：匹配特定的故障类型
<a name="managed-daemons-rule-failure-type"></a>

```
{
    "source": ["aws.ecs"],
    "detail-type": ["ECS Daemon Service Action"],
    "detail": {
        "eventName": ["DAEMON_TASK_START_IMPAIRED"],
        "failureType": ["TASK_CREATION_FAILED"]
    }
}
```

### 示例：匹配某个特定集群的事件
<a name="managed-daemons-rule-cluster"></a>

```
{
    "source": ["aws.ecs"],
    "detail-type": ["ECS Daemon Service Action"],
    "detail": {
        "eventName": ["DAEMON_TASK_START_IMPAIRED"],
        "clusterArn": ["arn:aws:ecs:{{us-west-2}}:{{123456789012}}:cluster/{{my-cluster}}"]
    }
}
```

### 示例：匹配所有的部署状态更改事件
<a name="managed-daemons-rule-deployment"></a>

```
{
    "source": ["aws.ecs"],
    "detail-type": ["ECS Daemon Deployment State Change"]
}
```