

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 配置 Automation 以监控 CloudWatch 警报
<a name="automation-cw-alarm-monitoring"></a>

可配置 Automation 运行手册执行以监控 CloudWatch 警报。如果指定的警报进入 `ALARM` 状态，Automation 将停止执行。对于使用速率控制模式或跨多个账户运行的执行，Automation 将取消所有待处理的执行。如果在运行手册中定义了 `onCancel` 步骤，这些步骤将在执行结束之前运行。当监控的资源运行状况不佳时，这可以防止运行手册继续运行。

**开始前的准备工作**  
在配置 CloudWatch 警报监控之前，请先满足以下先决条件：
+ **创建 CloudWatch 警报**：创建警报，监控受 Automation 执行影响的资源。有关更多信息，请参阅[使用 Amazon CloudWatch 警报](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html)。
+ **配置执行身份权限**：Automation 使用的执行身份必须具有以下权限才能使 CloudWatch 警报监控正常运行：
  + `cloudwatch:DescribeAlarms`：监控警报状态所必需。
  + `ssm:StopAutomationExecution`：警报激活时停止执行所必需。

  执行身份由 Automation 运行手册的 `assumeRole` 字段中指定的 IAM 角色 ARN 确定。如果未指定 `assumeRole` 值，则运行手册将使用调用 `StartAutomationExecution` 的 IAM 主体的身份执行。

以下示例显示授予 CloudWatch 警报监控所需权限的最低限度 IAM 策略：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms",
                "ssm:StopAutomationExecution"
            ],
            "Resource": "*"
        }
    ]
}
```

## 配置警报监控（控制台）
<a name="automation-cw-alarm-monitoring-console"></a>

通过 Systems Manager 控制台启动自动化操作时，使用以下流程配置 CloudWatch 警报监控。

**配置警报监控**

访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，选择 **自动化**。

1. 选择**执行自动化**。

1. 选择运行手册并为执行配置输入参数。

1. 在 **CloudWatch 警报**部分，选择要在执行期间监控的警报。  
![Systems Manager Automation 控制台的 CloudWatch 警报部分，其中显示警报选择以及警报状态不可用时继续执行的选项。](http://docs.amazonaws.cn/systems-manager/latest/userguide/images/automation-cw-alarm-console.png)

1. （可选）切换**警报状态不可用时继续自动化**，以控制 Automation 无法检索警报状态时的行为。启用后，即使无法确定警报状态，执行也将继续运行。禁用（默认）后，如果无法检索警报状态，执行将停止。

1. 选择**执行**。

## 配置警报监控（Amazon CLI）
<a name="automation-cw-alarm-monitoring-cli"></a>

使用带 `aws ssm start-automation-execution` 命令的 `--alarm-configuration` 参数，指定要监控的 CloudWatch 警报。

`--alarm-configuration` 参数接受具有以下字段的 JSON 结构：
+ `Alarms`（必填）：警报对象，`Name` 字段用于标识要监控的 CloudWatch 警报。
+ `IgnorePollAlarmFailure`（可选，布尔值）：控制 Automation 无法检索警报状态时的行为。设置为 `false`（默认）在无法确定警报状态时停止执行，或者设置为 `true` 在任何情况下都继续执行。

以下示例启动了一个自动化操作，用于监控名为 `my-alarm` 的 CloudWatch 警报。由于 `IgnorePollAlarmFailure` 设置为 `false`，因此如果无法检索警报状态，则 Automated 将停止：

```
aws ssm start-automation-execution \
    --document-name "AWS-RestartEC2Instance" \
    --parameters '{"InstanceId":["i-02573cafcfEXAMPLE"]}' \
    --alarm-configuration '{"IgnorePollAlarmFailure":false,"Alarms":[{"Name":"my-alarm"}]}'
```

## 跨账户和跨区域警报监控
<a name="automation-cw-alarm-monitoring-xaxr"></a>

对于跨多个账户和区域运行的自动化操作，您可以使用 `TargetLocations` 中的 `TargetLocationAlarmConfiguration` 字段，为每个目标位置配置警报监控。每个目标账户中的执行角色（例如 `AWS-SystemsManager-AutomationExecutionRole`）必须拥有 `cloudwatch:DescribeAlarms` 和 `ssm:StopAutomationExecution` 权限。

有关设置跨账户角色的更多信息，请参阅[设置进行多区域和多账户自动化的管理账户权限](running-automations-multiple-accounts-regions.md#setup-management-account-iam-roles)。