

# 告警操作
<a name="alarm-actions"></a>

您可以指定告警在“OK（正常）”、“ALARM（告警）”和“INSUFFICIENT\$1DATA（数据不足）”状态之间更改状态时所执行的操作。

要过渡到这三种状态中的每一种，大多数操作都可以设置。除自动扩缩操作外，这些操作仅在状态转换时会发生，如果该情况持续数小时或数天，则不会再次执行。

以下是受支持的告警操作：
+ 通过使用 Amazon Simple Notification Service 主题通知一个或多个订阅用户。订阅用户既可以是应用程序，也可以是个人。
+ 调用 Lambda 函数。这是在警报状态变化时自动执行自定义操作的最简单方法。
+ 基于 EC2 指标的警报还可以执行 EC2 操作，例如停止、终止、重启或恢复 EC2 实例。
+ 警报还可以执行操作来扩展自动扩缩组。
+ 告警可以在 Systems Manager Ops Center 中创建 OpsItems，或在 AWS Systems Manager Incident Manager 中创建事件。只有在告警进入“ALARM（告警）”状态时才能执行这些操作。
+ 警报进入 ALARM 状态时可启动调查。

警报还会在更改状态时向 Amazon EventBridge 发出事件，您可以将 Amazon EventBridge 设置为针对这些状态更改触发其他操作。

## 告警操作和通知
<a name="alarm-actions-notifications"></a>

下表显示了针对各类告警所执行的操作及其在多个时间序列（或贡献者）告警情况下的表现：


| 操作类型 | Metrics Insights 多时间序列警报支持 | PromQL 警报支持 | 更多信息 | 
| --- | --- | --- | --- | 
| SNS 通知 | 影响因素级别 | 影响因素级别 | [Amazon SNS event destinations](https://docs.aws.amazon.com/sns/latest/dg/sns-event-destinations.html) | 
| EC2 操作（停止、终止、重启、恢复） | 不支持 | 不支持 | [停止、终止、重启或恢复 EC2 实例](UsingAlarmActions.md) | 
| Auto Scaling 操作 | 不支持 | 不支持 | [Amazon EC2 Auto Scaling 的阶梯式扩展策略与简单扩展策略](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) | 
| Systems Manager OpsItem 创建 | 告警级别 | 不支持 | [Configure CloudWatch alarms to create OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) | 
| Systems Manager Incident Manager 事件 | 告警级别 | 不支持 | [Creating incidents automatically with CloudWatch alarms](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-alarms) | 
| Lambda 函数调用 | 影响因素级别 | 影响因素级别 | [从警报中调用 Lambda 函数](alarms-and-actions-Lambda.md) | 
| CloudWatch 调查功能调查 | 告警级别 | 不支持 | [从警报启动 CloudWatch 调查](Start-Investigation-Alarm.md) | 

警报通知的内容因警报类型而异：
+ 单指标告警通知内容同时包含状态原因和详细的状态原因数据，会显示导致状态变化的具体数据点。
+ Metrics Insights 多时间序列警报会为每个贡献者提供简化的状态原因，不会包含详细状态原因数据块。
+ PromQL 警报的通知中不包含状态原因或状态原因数据。

**Example 通知内容示例**  
单指标告警通知包含详细的数据：  

```
{
  "stateReason": "Threshold Crossed: 3 out of the last 3 datapoints [32.6 (03/07/25 08:29:00), 33.8 (03/07/25 08:24:00), 41.0 (03/07/25 08:19:00)] were greater than the threshold (31.0)...",
  "stateReasonData": {
    "version": "1.0",
    "queryDate": "2025-07-03T08:34:06.300+0000",
    "startDate": "2025-07-03T08:19:00.000+0000",
    "statistic": "Average",
    "period": 300,
    "recentDatapoints": [41, 33.8, 32.6],
    "threshold": 31,
    "evaluatedDatapoints": [
      {
        "timestamp": "2025-07-03T08:29:00.000+0000",
        "sampleCount": 5,
        "value": 32.6
      }
      // Additional datapoints...
    ]
  }
}
```
多时间序列 Metrics Insights 告警 SNS 通知（以贡献者为例）：  

```
{
  "AlarmName": "DynamoDBInsightsAlarm",
  "NewStateValue": "ALARM",
  "NewStateReason": "Threshold Crossed: 1 datapoint was less than the threshold (1.0). The most recent datapoint which crossed the threshold: [0.0 (01/12/25 13:34:00)].",
  "StateChangeTime": "2025-12-01T13:42:04.919+0000",
  "OldStateValue": "OK",
  "AlarmContributorId": "6d442278dba546f6",
  "AlarmContributorAttributes": {
    "TableName": "example-dynamodb-table-name"
  }
  // Additional information...
}
```
贡献者的 PromQL 警报 SNS 通知示例：  

```
{
  "AlarmName": "HighCPUUsageAlarm",
  "NewStateValue": "ALARM",
  "StateChangeTime": "2025-12-01T13:42:04.919+0000",
  "OldStateValue": "OK",
  "AlarmContributorId": "1d502278dcd546a1",
  "AlarmContributorAttributes": {
    "team": "example-team-name"
  }
  // Additional information...
}
```

## 将告警操作静音
<a name="mute-alarm-actions"></a>

 告警静音规则使您能够在预定义的时间窗口（例如维护期间或发生操作事件时）内自动将告警操作静音。CloudWatch 继续监控告警状态，同时阻止不必要的通知。有关更多信息，请参阅 [告警静音规则](alarm-mute-rules.md)。

**静音规则与禁用告警操作**  
 告警静音规则会在预定时间段内暂时将操作静音，并在窗口结束时自动取消静音。相比之下，`DisableAlarmActions` API 会永久禁用告警操作，直到您手动调用 `EnableAlarmActions`。`EnableAlarmActions` API 不会将由活动静音规则静音的告警取消静音。

**注意**  
 将告警静音并不会阻止 CloudWatch 向亚 Amazon EventBridge 发送告警创建、更新、删除和状态更改的告警事件。