

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

# 在多个 Amazon Web Services 区域 和账户中运行自动化


您可以在中央账户的多个 Amazon Web Services 区域 区域和 Amazon Web Services 账户 账户或 Amazon Organizations 组织部门 (OU) 中运行 Amazon Systems Manager 自动化。Automation 是 Amazon Systems Manager 中的一项工具。在多个区域和账户或 OU 中运行自动化可减少管理 Amazon 资源所需的时间，同时提高计算环境的安全性。

例如，您可以使用自动化运行手册执行以下操作：
+ 集中实施补丁和安全更新。
+ 修复 VPC 配置或 Amazon S3 桶策略的合规性偏差。
+ 大规模管理资源，例如 Amazon Elastic Compute Cloud (Amazon EC2) EC2 实例。

下图显示了一个用户在中央账户的多个区域和账户中运行 `AWS-RestartEC2Instances` 运行手册的示例。自动化在目标区域和账户中使用指定的标签以查找实例。

**为自动化选择中央账户**  
如果要在 OU 中运行自动化，中央账户必须具有列出 OU 中所有账户的权限。这只能通过委派管理员账户或组织的管理账户实现。我们建议您遵循 Amazon Organizations 最佳实践并使用委派管理员账户。有关 Amazon Organizations 最佳实践的更多信息，请参阅 *Amazon Organizations 用户指南*中的[管理账户的最佳实践](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_best-practices_mgmt-acct.html)。要为 Systems Manager 创建委派管理员账户，可以将 `register-delegated-administrator` 命令与 Amazon CLI 一起使用，如以下示例所示。

```
aws organizations register-delegated-administrator \
    --account-id delegated admin account ID \
    --service-principal ssm.amazonaws.com
```

如果您想跨多个不受 Amazon Organizations 托管的账户运行自动化，我们建议您创建一个专用账户用于自动化管理。从专用账户运行所有跨账户自动化可简化 IAM 权限管理、故障排除工作，并在操作和管理之间建立分离层。如果您使用 Amazon Organizations，但只希望针对个人账户而不是 OU，也建议使用此方法。

**自动化的工作原理**  
跨多个区域和账户或 OU 运行自动化的工作方式如下：

1. 登录要配置为 Automation 中央账户的账户。

1. 使用本主题中的 [设置进行多区域和多账户自动化的管理账户权限](#setup-management-account-iam-roles) 过程创建以下 IAM 角色：
   + `AWS-SystemsManager-AutomationAdministrationRole` - 此角色为用户提供在多个账户和 OU 中运行自动化的权限。
   + `AWS-SystemsManager-AutomationExecutionRole` - 此角色为用户提供在目标账户中运行自动化的权限。

1. 选择要运行自动化的运行手册、区域、账户或 OU。
**注意**  
确保目标 OU 包含所需的账户。如果选择自定义运行手册，则必须与所有目标账户共享运行手册。有关共享运行手册的信息，请参阅 [共享 SSM 文档](documents-ssm-sharing.md)。有关使用共享运行手册的信息，请参阅 [使用共享 SSM 文档](documents-ssm-sharing.md#using-shared-documents)。

1. 运行自动化。

1. 通过 Amazon Systems Manager 控制台或 Amazon CLI 使用 [GetAutomationExecution](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetAutomationExecution.html)、[DescribeAutomationStepExecutions](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DescribeAutomationStepExecutions.html) 和 [DescribeAutomationExecutions](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_DescribeAutomationExecutions.html) API 操作监控自动化进度。您的主账户中自动化步骤的输出将是子自动化的 `AutomationExecutionId`。要查看在目标账户中创建的子自动化的输出，请确保在您的请求中指定相应的账户、区域和 `AutomationExecutionId`。

## 设置进行多区域和多账户自动化的管理账户权限


按照以下过程操作，使用 Amazon CloudFormation 创建进行 Systems Manager 自动化多区域和多账户自动化所需的 IAM 角色。此过程介绍如何创建 `AWS-SystemsManager-AutomationAdministrationRole` 角色。您只需要在自动化中央账户中创建此角色。此过程还介绍了如何创建 `AWS-SystemsManager-AutomationExecutionRole` 角色。您必须在要设置为多区域和多账户自动化运行目标的*每一个*账户中创建该角色。我们建议使用 Amazon CloudFormation StackSets 您想要设置为多区域和多账户自动化运行目标的账户创建 `AWS-SystemsManager-AutomationExecutionRole` 角色。

**使用 Amazon CloudFormation 创建进行多区域和多账户自动化所需的 IAM 管理角色**

1. 下载并解压缩 [https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip](https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip)。

   –或者–

   如果您的账户由 Amazon Organizations [https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip](https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip) 管理。

   这些文件分别包含 `AWS-SystemsManager-AutomationAdministrationRole.yaml` 和 `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` Amazon CloudFormation 模板文件。

1. 通过以下网址打开 Amazon CloudFormation 控制台：[https://console.aws.amazon.com/cloudformation](https://console.amazonaws.cn/cloudformation/)。

1. 选择**创建堆栈**。

1. 在 **Specify template**（指定模板）部分中，选择 **Upload a template**（上传模板）。

1. 选择**选择文件**，然后根据您在步骤 1 中所做的选择选择 `AWS-SystemsManager-AutomationAdministrationRole.yaml` 或 `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` Amazon CloudFormation 模板文件。

1. 选择**下一步**。

1. 在**指定堆栈详细信息**页面的**堆栈名称**字段中，输入名称。

1. 选择 **Next（下一步）**。

1. 在 **Configure stack options**（配置堆栈选项）页面上，为要使用的所有选项输入值。选择 **Next（下一步）**。

1. 在**审核**页面上，向下滚动并选择**我确认 Amazon CloudFormation 可能使用自定义名称创建了 IAM 资源**选项。

1. 选择**创建堆栈**。

大约三分钟左右，Amazon CloudFormation 会显示 **CREATE\$1IN\$1PROGRESS** 状态。状态变为 **CREATE\$1COMPLETE**。

在要设置为多区域和多账户自动化运行目标的*每一个*账户中，您必须重复以下过程。

**使用 Amazon CloudFormation 创建进行多区域和多账户自动化所需的 IAM 自动化角色**

1. 下载 [https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip](https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip)。

   - 或

   如果您的账户由 Amazon Organizations [https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip](https://docs.amazonaws.cn/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip) 管理。

   这些文件分别包含 `AWS-SystemsManager-AutomationExecutionRole.yaml` 和 `AWS-SystemsManager-AutomationExecutionRole (org).yaml` Amazon CloudFormation 模板文件。

1. 通过以下网址打开 Amazon CloudFormation 控制台：[https://console.aws.amazon.com/cloudformation](https://console.amazonaws.cn/cloudformation/)。

1. 选择**创建堆栈**。

1. 在 **Specify template**（指定模板）部分中，选择 **Upload a template**（上传模板）。

1. 选择**选择文件**，然后根据您在步骤 1 中所做的选择选择 `AWS-SystemsManager-AutomationExecutionRole.yaml` 或 `AWS-SystemsManager-AutomationExecutionRole (org).yaml` Amazon CloudFormation 模板文件。

1. 选择**下一步**。

1. 在**指定堆栈详细信息**页面的**堆栈名称**字段中，输入名称。

1. 在 **Parameters**（参数）部分的 **AdminAccountId** 字段中，输入自动化中央账户的 ID。

1. 如果您要为 Amazon Organizations 环境设置此角色，则该部分中还有另一个名为 **OrganizationID** 的字段。输入 Amazon 组织的 ID。

1. 选择 **Next（下一步）**。

1. 在 **Configure stack options**（配置堆栈选项）页面上，为要使用的所有选项输入值。选择 **Next（下一步）**。

1. 在**审核**页面上，向下滚动并选择**我确认 Amazon CloudFormation 可能使用自定义名称创建了 IAM 资源**选项。

1. 选择**创建堆栈**。

大约三分钟左右，Amazon CloudFormation 会显示 **CREATE\$1IN\$1PROGRESS** 状态。状态变为 **CREATE\$1COMPLETE**。

## 在多个区域和账户中运行自动化（控制台）


以下过程介绍了如何使用 Systems Manager 控制台在自动化管理账户的多个区域和账户中运行自动化。

**开始前的准备工作**  
在完成以下过程之前，请记下以下信息：
+ 用于运行多区域或多账户自动化的用户或角色必须拥有 `AWS-SystemsManager-AutomationAdministrationRole` 角色的 `iam:PassRole` 权限。
+ 要在其中运行自动化的 Amazon Web Services 账户 账户 ID 或 OU。
+ 将在其中运行自动化的[受 Systems Manager 支持区域](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region)。
+ 要在其中运行自动化的标签键和标签值或资源组的名称。

**在多个区域和账户中运行自动化**

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

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

1. 在**自动化文档**列表中，请选择运行手册。在**文档类别**窗格中选择一个或多个选项，以便根据 SSM 文档的用途对其进行筛选。要查看您拥有的运行手册，请选择**我拥有的**选项卡。要查看与您的账户共享的运行手册，请选择**与我共享**选项卡。要查看所有运行手册，请选择**所有文档**选项卡。
**注意**  
您可以通过选择运行手册名称来查看有关该手册的信息。

1. 在**文档详细信息**部分中，验证**文档版本**已设置为要运行的版本。系统包括以下版本选项：
   + **运行时的默认版本** – 如果定期更新自动化运行手册并分配新的默认版本，请选择此选项。
   + **运行时的最新版本** – 如果定期更新自动化运行手册并且想要运行最新更新的版本，请选择此选项。
   + **1（默认）** – 选择此选项可执行文档的第一个版本，即默认版本。

1. 选择**下一步**。

1. 在**执行自动化文档页面**上，选择**多账户和区域**。

1. 在**目标账户和区域**部分中，使用**账户和组织单元（OU）和根**字段指定要在其中运行自动化的不同 Amazon Web Services 账户 或 Amazon 组织单元（OU）。使用逗号分隔多个账户或 OU。

   1. （可选）选中**包括子 OU** 复选框以包括指定 OU 中的所有子组织单元。

   1. （可选）在**排除账户和组织单元（OU）**字段中，输入以逗号分隔的账户 ID 和 OU ID 列表，这些账户和组织单元将从上面输入的扩展实体中排除。

1. 使用**区域**列表选择要在其中运行自动化的一个或多个区域。

1. 使用**多区域和账户速率控制**选项将自动化限制为在有限区域中的有限账户运行。这些选项不限制可运行自动化的 Amazon 资源的数量。

   1. 在**位置(账户-区域对)并发)**部分中，选择一个选项以限制可同时在多个账户和区域中运行的自动化的数量。例如，如果选择在位于四 (4) 个 Amazon Web Services 区域 中的五 (5) 个 Amazon Web Services 账户 账户中运行自动化，则 Systems Manager 在总共 20 个账户-区域对中运行自动化。您可以使用此选项指定一个绝对数量（例如 **2**），以使自动化仅同时在两个账户-区域对中运行。或者，您也可以指定可同时运行的账户-区域对的百分比。例如，对于 20 个账户-区域对，如果您指定 20%，自动化在最多五 (5) 个账户-区域对中同时运行。
      + 选择**目标**，以输入可同时运行自动化的账户-区域对的绝对数量。
      + 选择**百分比**，以输入可同时运行自动化的账户-区域对总数的百分比。

   1. 在**错误阈值**部分中，选择一个选项：
      + 选择**错误**，以输入自动化停止将自动化发送到其他资源之前允许的错误绝对数量。
      + 选择**百分比**，以输入自动化停止将工作流程发送到其他资源之前允许的错误的百分比。

1. 在**目标**部分中，选择希望如何设置要在其中运行自动化的 Amazon 资源。这些选项是必需的。

   1. 使用**参数**列表选择一个参数。**参数**列表中的项目由此过程开始时选择的自动化运行手册中的参数确定。通过选择参数，可以定义在其上运行自动化工作流的资源类型。

   1. 使用**目标**列表选择设置目标资源的方式。

      1. 如果选择使用参数值将资源设置为目标，请输入您在**输入参数**部分为参数选择的参数值。

      1. 如果选择使用 Amazon Resource Groups 将资源设置为目标，请从**资源组**列表中选择组的名称。

      1. 如果选择使用标签将资源设置为目标，请在提供的字段中输入标签键和（可选）标签值。选择**添加**。

      1. 如果要在当前 Amazon Web Services 账户 和 Amazon Web Services 区域 中的所有实例上运行自动化运行手册，则选择**所有实例**。

1. 在**输入参数** 部分中，指定所需的输入。从 **AutomationAssumeRole** 列表选择 `AWS-SystemsManager-AutomationAdministrationRole` IAM 服务角色。
**注意**  
您可能不需要选择**输入参数**部分中的某些选项。原因是您使用标签或资源组将多个区域和账户中的资源设置为目标。例如，如果选择了 `AWS-RestartEC2Instance` 运行手册，则无需在**输入参数**部分中指定或选择实例 ID。自动化使用您指定的标签以查找要重新启动的实例。

1. （可选）选择一个 CloudWatch 警报以应用于您的自动化进行监控。要将 CloudWatch 警报附加到自动化，启动自动化的 IAM 主体必须具有 `iam:createServiceLinkedRole` 操作的权限。有关 CloudWatch 警报的更多信息，请参阅[使用 Amazon CloudWatch 警报](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。请注意，如果您的警报激活，自动化将取消，并且您定义的任何 `OnCancel` 步骤都会运行。如果使用 Amazon CloudTrail，您将在跟踪中看到 API 调用。

1. 使用**速率控制**部分中的选项限制可在每个账户-区域对中运行自动化的 Amazon 资源的数量。

   在**并发**部分中，选择一个选项：
   + 选择**目标**，以输入可同时运行自动化工作流目标的绝对数量。
   + 选择**百分比**，以输入可同时运行自动化工作流的目标集的百分比。

1. 在**错误阈值**部分中，选择一个选项：
   + 选择**错误**，以输入自动化停止将工作流程发送到其他资源之前允许的错误的绝对数量。
   + 选择**百分比**，以输入自动化停止将工作流程发送到其他资源之前允许的错误的百分比。

1. 选择**执行**。

自动化执行完成后，您可以使用相同或修改后的参数重新运行该执行。有关更多信息，请参阅 [重新运行自动化执行](automation-rerun-executions.md)。

## 在多个区域和账户中运行自动化（命令行）


以下过程介绍了如何使用 Amazon CLI（在 Linux 或 Windows 上）或 Amazon Tools for PowerShell 在自动化管理账户的多个区域和账户中运行自动化。

**开始前的准备工作**  
在完成以下过程之前，请记下以下信息：
+ 要在其中运行自动化的 Amazon Web Services 账户 账户 ID 或 OU。
+ 将在其中运行自动化的[受 Systems Manager 支持区域](https://docs.amazonaws.cn/general/latest/gr/ssm.html#ssm_region)。
+ 要在其中运行自动化的标签键和标签值或资源组的名称。

**在多个区域和账户中运行自动化**

1. 安装并配置 Amazon CLI 或 Amazon Tools for PowerShell（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 Amazon CLI 的最新版本](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)以及[安装 Amazon Tools for PowerShell](https://docs.amazonaws.cn/powershell/latest/userguide/pstools-getting-set-up.html)。

1. 使用以下格式创建一个命令，以便在多个区域和账户中运行自动化。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name parameter name \
           --targets Key=tag key,Values=value \
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name runbook name ^
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name parameter name ^
           --targets Key=tag key,Values=value ^
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag key"
       $Targets.Values = "value"
       
       Start-SSMAutomationExecution `
           -DocumentName "runbook name" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "parameter name" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="account ID","account ID 2";
           "Regions"="Region","Region 2";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

**示例：在多个区域和账户中运行自动化**  
以下示例演示如何使用 Amazon CLI 和 PowerShell 通过一条命令在多个账户和区域中运行自动化。

   **示例 1**：此示例重启整个 Amazon Organizations 组织中三个区域中的 EC2 实例。这是通过定位组织的根 ID 并包括子 OU 来实现的。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' \
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' ^
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @{
               "Accounts"="r-example";
               "Regions"="us-east-1", "us-east-2", "us-west-2";
               "IncludeChildOrganizationUnits"=true}
   ```

------

   **示例 2**：此示例重启不同账户和区域中的特定 EC2 实例。
**注意**  
`TargetLocationMaxConcurrency` 选项在使用 Amazon CLI 和 Amazon SDK 时可用。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @({
               "Accounts"="123456789012",
               "Targets"= @{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               },
               "TargetLocationMaxConcurrency"="100%",
               "Regions"=["us-east-1"]
           }, {
               "Accounts"="987654321098",
               "Targets": @{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               },
               "TargetLocationMaxConcurrency": "100%",
               "Regions"=["us-east-2"]
           })
   ```

------

   **示例 3**：此示例演示如何使用 `--target-locations-url` 选项指定应在其中运行自动化的多个 Amazon Web Services 账户 和区域。此选项的值必须是可公开访问的[预签名 Amazon S3 URL](https://docs.amazonaws.cn/AmazonS3/latest/userguide/using-presigned-url.html) 中的 JSON 文件。
**注意**  
`--target-locations-url` 在使用 Amazon CLI 和 Amazon SDK 时可用。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "MyCustomAutomationRunbook" \
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "MyCustomAutomationRunbook" ^
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName "MyCustomAutomationRunbook" `
       -TargetLocationsUrl "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------

   JSON 文件的示例内容：

   ```
   [
   { 
            "Accounts": [ "123456789012", "987654321098", "456789123012" ],
            "ExcludeAccounts": [ "111222333444", "999888444666" ],
            "ExecutionRoleName": "MyAutomationExecutionRole",
            "IncludeChildOrganizationUnits": true,
            "Regions": [ "us-east-1", "us-west-2", "ap-south-1", "ap-northeast-1" ],
            "Targets": ["Key": "AWS::EC2::Instance", "Values": ["i-2"]],
            "TargetLocationMaxConcurrency": "50%",
            "TargetLocationMaxErrors": "10",
            "TargetsMaxConcurrency": "20",
            "TargetsMaxErrors": "12"
    }
   ]
   ```

   **示例 4**：此示例重启 `123456789012` 和 `987654321098` 账户中的 EC2 实例，它们位于 `us-east-2` 和 `us-west-1` 区域中。必须使用标签键对值 `Env-PROD` 标记这些实例。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=tag:Env,Values=PROD \
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=tag:Env,Values=PROD ^
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag:Env"
       $Targets.Values = "PROD"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="us-east-2","us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **示例 5**：此示例重启 `123456789012` 和 `987654321098` 账户中的 EC2 实例，它们位于 `eu-central-1` 区域中。这些实例必须是 `prod-instances` Amazon 资源组的成员。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=prod-instances \
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=prod-instances ^
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "prod-instances"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="eu-central-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **示例 6**：此示例重启 `ou-1a2b3c-4d5e6c` Amazon 组织单元（OU）中的 EC2 实例。这些实例位于 `us-west-1` 和 `us-west-2` 区域中。这些实例必须是 `WebServices` Amazon 资源组的成员。

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=WebServices \
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=WebServices ^
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "WebServices"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="ou-1a2b3c-4d5e6c";
           "Regions"="us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   系统返回类似于以下内容的信息。

------
#### [ Linux & macOS ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ Windows ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ PowerShell ]

   ```
   4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

1. 运行以下命令以查看自动化的详细信息。将 *automation execution ID* 替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
           Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. 运行以下命令以查看自动化进程的详细信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecution `
           -AutomationExecutionId a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------
**注意**  
您也可以在控制台中监控自动化的状态。在**自动化执行**列表中，请选择您刚才运行的自动化，然后选择**执行步骤**选项卡。该选项卡显示自动化操作的状态。

**更多信息**  
[通过 Amazon Systems Manager 自动化进行集中式多账户和多区域修补](https://www.amazonaws.cn/blogs/mt/centralized-multi-account-and-multi-region-patching-with-aws-systems-manager-automation/)