

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

# `aws:branch` – 运行条件自动化步骤
<a name="automation-action-branch"></a>

`aws:branch` 操作让您能够创建一个动态自动化，该自动化在一个步骤中评估不同选择，然后根据评估结果跳转到运行手册中的另一个步骤。

在为步骤指定 `aws:branch` 操作时，请指定自动化必须评估的 `Choices`。`Choices` 可以基于您在运行手册的 `Parameters` 部分中指定的值，也可以基于上一步的输出生成的动态值。自动化使用布尔表达式评估每个选择。如果第一个选择为真，则自动化跳转到为此选择指定的步骤。如果第一个选择为假，则自动化评估下一个选择。自动化继续评估每个选择，直到遇到结果为真的选择。然后，自动化跳转到为结果为真的选择指定的步骤。

如果所有选择都为假，则自动化检查该步骤是否包含 `default` 值。默认值定义当所有选择都为假时自动化应跳转到的步骤。如果没有为该步骤指定 `default` 值，则自动化处理运行手册中的下一个步骤。

`aws:branch` 操作通过组合使用 `And`、`Not` 和 `Or` 运算符来支持复杂的选择评估。有关如何使用 `aws:branch` 的更多信息，包括使用不同运算符的示例运行手册和示例，请参阅 [在运行手册中使用条件语句](automation-branch-condition.md)。

**Input**  
在步骤中指定一个或多个 `Choices`。`Choices` 可以基于您在运行手册的 `Parameters` 部分中指定的值，也可以基于上一步的输出生成的动态值。下面是一个评估参数的 YAML 示例。

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

下面是一个评估上一步输出的 YAML 示例。

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Choices  
自动化 在确定下一个要处理的步骤时应评估的一个或多个表达式。通过使用布尔表达式对选择进行评估。每个选择都必须定义以下选项：  
+ **NextStep**：当指定的选择为真时，要处理的运行手册中的下一个步骤。
+ **变量**：指定在运行手册的 `Parameters` 部分中定义的参数名称。或指定来自运行手册中上一步的输出对象。有关为 `aws:branch` 创建变量的更多信息，请参阅 [关于创建输出变量](automation-branch-condition.md#branch-action-output)。
+ **运算**：用于评估选择的标准。`aws:branch` 操作支持以下运算：

**字符串运算**
  + 字符串等于
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + 包含

**数值运算**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**布尔运算**
  + BooleanEquals
**重要**  
创建运行手册时，系统将验证运行手册中的每个操作。在尝试创建运行手册时，如果某个操作不受支持，系统会返回错误。

默认  
当所有 `Choices` 都为假时，自动化应跳转到的步骤的名称。  
类型：字符串  
必需：否

**注意**  
`aws:branch` 操作支持 `And`、`Or` 和 `Not` 运算符。有关使用运算符的 `aws:branch` 的示例，请参阅 [在运行手册中使用条件语句](automation-branch-condition.md)。