

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

# 在 Systems Manager 中使用关联。
<a name="state-manager-associations"></a>

本节将介绍如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for PowerShell 来创建和管理 State Manager 关联。

**Topics**
+ [了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)
+ [创建关联](state-manager-associations-creating.md)
+ [编辑和创建关联的新版本](state-manager-associations-edit.md)
+ [删除关联](systems-manager-state-manager-delete-association.md)
+ [运行 Auto Scaling 组](systems-manager-state-manager-asg.md)
+ [查看关联历史记录](state-manager-associations-history.md)
+ [使用 IAM 处理关联](systems-manager-state-manager-iam.md)

# 了解 State Manager 关联中的目标和速率控制
<a name="systems-manager-state-manager-targets-and-rate-controls"></a>

本主题介绍State Manager工具。此工具可帮助您将关联部署到数十个或数百个节点，同时控制在计划时间运行关联的节点数。State Manager是 AWS Systems Manager 中的一项工具。

## 使用目标
<a name="systems-manager-state-manager-targets-and-rate-controls-about-targets"></a>

在创建 State Manager 关联时，选择在 Systems Manager 控制台中的**Targets**（目标）部分中要配置哪些节点，如下所示。

![\[创建 State Manager 关联时用于将节点设为目标的不同选项\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/state-manager-targets.png)


如果使用命令行工具（如AWS Command Line Interface (AWS CLI)）创建关联，请指定 `targets` 参数。通过将节点设为目标，您可以配置数十个、数百个或数千个具有关联的节点，而无需指定或选择单个节点 ID。

每个托管节点最多可以有 20 个关联作为目标。

State Manager 在创建关联时包括以下目标选项。

**指定标签**  
使用此选项可指定分配给节点的标签键和（可选）标签值。在您运行请求时，系统会在与指定标签键和值匹配的所有节点上查找并尝试创建关联。如果您指定了多个标签值，则关联将至少具有其中一个标签值的任何节点设为目标。当系统最初创建关联时，它将运行关联。在此初始运行之后，系统将根据您指定的计划运行关联。

如果您创建新节点并将指定的标签键和值分配给这些节点，系统会自动应用关联，立即运行它，然后根据计划运行它。这在关联使用命令或策略文档时适用，如果关联使用自动化运行手册，则不适用。如果从节点中删除指定的标签，系统将不再在这些节点上运行关联。

**注意**  
如果您将自动化运行手册与 State Manager 结合使用，但由于标记限制的原因，您无法实现特定目标，请考虑将自动化运行手册与 Amazon EventBridge 结合使用。有关更多信息，请参阅 [基于 EventBridge 事件运行自动化](running-automations-event-bridge.md)。有关将 State Manager 与自动化运行手册结合使用的信息，请参阅[使用 State Manager 关联调度自动化](scheduling-automations-state-manager-associations.md)。

作为最佳实践，我们建议在创建使用命令或策略文档的关联时使用标签。我们还建议在创建运行自动扩缩组的关联时使用标签。有关更多信息，请参阅 [运行 Auto Scaling 组](systems-manager-state-manager-asg.md)。

**注意**  
请注意以下信息。  
在 AWS 管理控制台中使用标签创建定位节点的关联时，只能为自动关联指定一个标签键，为命令关联指定五个标签键。关联中指定的*所有*标签键当前都必须分配给该节点。如果没有分配给该节点，则 State Manager 无法将该节点作为关联目标。
如果要使用控制台，*并且*希望通过对自动关联使用多个标签键，对命令关联使用五个标签键来定位节点，请将标签键分配给 AWS Resource Groups 组并将节点添加到该组。然后，在创建 State Manager 关联时您可以在**目标**列表中选择**资源组**选项。
您可以使用 AWS CLI 指定最多五个标签键。如果使用 AWS CLI，则 `create-association` 命令中指定的*所有*标签键当前都必须分配给该节点。如果没有分配给该节点，则 State Manager 无法将该节点作为关联目标。

**手动选择节点**  
使用此选项可手动选择要在其中创建关联的节点。**Instances**（实例）窗格显示当前 AWS 账户 和 AWS 区域 中所有的 Systems Manager 托管式节点。您可以根据需要手动选择任意多个节点。当系统最初创建关联时，它将运行关联。在此初始运行之后，系统将根据您指定的计划运行关联。

**注意**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

**选择资源组**  
使用此选项可在基于 AWS Resource Groups 标签或基于 AWS CloudFormation 堆栈的查询返回的所有节点上创建关联。

以下为有关将关联的 Resource Groups 设为目标的详细信息。
+ 如果向组添加新节点，系统会自动将这些节点映射到将资源组设为目标的关联。当系统发现更改时，即会将关联应用于这些节点。在此初始运行之后，系统将根据您指定的计划运行关联。
+ 如果您创建了以资源组为目标的关联，并且为该组指定了 `AWS::SSM::ManagedInstance` 资源类型，那么根据设计，该关联将在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的 Amazon Elastic Compute Cloud（Amazon EC2）实例和非 EC2 节点上运行。

  反之亦然。如果您创建了以资源组为目标的关联，并且为该组指定了 `AWS::EC2::Instance` 资源类型，那么根据设计，该关联将同时在[混合和多云](operating-systems-and-machine-types.md#supported-machine-types)环境中的非 EC2 节点和（Amazon EC2）实例上运行。
+ 如果您创建了将某个资源组作为目标的关联，则分配给该资源组的标签键不得超过五个，或者为任何一个标签键指定的值不得超过五个。如果这些条件中的任何一个适用于分配给您的资源组的标签和键，则该关联将无法运行并返回 `InvalidTarget` 错误。
+ 如果您使用标签创建以资源组为目标的关联，则无法为标签值选择**（空值）**选项。
+ 如果删除资源组，则该组中的所有实例将不再运行关联。作为最佳实践，删除将该组设为目标的关联。
+ 您只能将关联的单个资源组设为目标。不支持多个组或嵌套组。
+ 创建关联后，State Manager 会使用资源组中资源的相关信息定期更新关联。如果您向资源组添加新资源，则系统何时将关联应用于新资源的计划取决于多个因素。您可以在 Systems Manager 控制台的 State Manager 页面上决定关联的状态。

**警告**  
有权创建将 Amazon EC2 实例资源组设为目标的关联的 AWS Identity and Access Management (IAM) 用户、组或角色自动具有组中所有实例的根级控制权。应只允许受信任的管理员创建关联。

有关 Resource Groups 的详细信息，请参阅[什么是 AWS Resource Groups ?](https://docs.aws.amazon.com/ARG/latest/userguide/)中的*AWS Resource Groups 用户指南*。

**选择所有节点**  
使用此选项可将当前 AWS 账户 和 AWS 区域 中的所有节点设为目标。在您运行请求时，系统会在当前 AWS 账户 和 AWS 区域 中的所有节点上查找并尝试创建关联。当系统最初创建关联时，它将运行关联。在此初始运行之后，系统将根据您指定的计划运行关联。如果您创建新节点，系统会自动应用关联，立即运行它，然后根据计划运行它。

## 使用速率控制
<a name="systems-manager-state-manager-targets-and-rate-controls-about-controls"></a>

您可以通过指定并发值和错误阈值来控制关联在节点上的执行。并发值用于指定允许同时运行该关联的节点数量。错误阈值指定关联执行可以失败的次数，超过该次数后 Systems Manager 向已配置该关联的每个节点发送命令来停止运行该关联。此命令停止关联运行，直至下一次计划执行。并发和错误阈值功能统称为*速率控制*。

![\[创建 State Manager 关联时不同的速率控制选项\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/state-manager-rate-controls.png)


**并发**  
并发通过允许您指定只有特定数量的节点可以一次处理一个关联，来帮助限制对节点的影响。您可以指定绝对数量的节点（例如 20），也可以指定目标节点集百分比（例如 10%）。

State Manager 并发具有以下限制：
+ 如果选择使用目标创建关联，但不指定并发值，则State Manager 自动强制实施 50 个节点的最大并发。
+ 如果在使用并发的关联运行时，与目标条件匹配的新节点变为线上状态，则新节点将在未超出并发值时运行关联。如果超出并发值，则会在当前的关联执行间隔内忽略这些节点。在满足并发要求的情况下，这些节点将在下一个计划间隔内运行关联。
+ 如果更新一个使用并发的关联，并且在更新时有一个或多个节点在处理该关联，则允许正在运行该关联的任何节点完成。尚未开始的关联将停止。关联运行完成后，因为关联已更新，所以所有目标节点都将立即再次运行该关联。当关联再次运行时,将强制执行并发值。

**错误阈值**  
错误阈值指定允许关联执行失败的次数，超过该次数后 Systems Manager 向已配置该关联的每个节点发送命令。此命令停止关联运行，直至下一次计划执行。您可以指定绝对数量的错误（如 10），也可以指定目标集百分比（如 10%）。

例如，如果指定错误的绝对数为 3，则 State Manager 将在返回第四个错误时发送停止命令。如果指定 0，则 State Manager 将在返回第一个错误结果后发送停止命令。

如果为 50 个关联指定错误阈值 10%，则 State Manager 将在返回第六个错误时发送停止命令。在达到错误阈值时，允许完成已经运行的关联，但是其中一些关联可能失败。要确保错误数不超过为错误阈值指定的数量，请将 **Concurrency (并发)** 值设置为 1，以便一次只处理一个关联。

State Manager 错误阈值具有以下限制：
+ 为当前间隔强制实施错误阈值。
+ 有关每个错误的信息（包括步骤级别详细信息）都记录在关联历史记录中。
+ 如果选择使用目标创建关联，但不指定错误阈值，则 State Manager 自动强制实施 100% 失败的阈值。

# 创建关联
<a name="state-manager-associations-creating"></a>

State Manager（AWS Systems Manager 中的一项工具）可以帮助您将 AWS 资源保持在您定义的状态，并减少配置偏移。为此，State Manager 会使用关联。*关联*是指分配给 AWS 资源的配置。该配置定义要在资源上保持的状态。例如，关联可以指定必须在托管式节点上安装并运行防病毒软件，或必须关闭特定端口。

关联指定了何时应用关联的配置和目标的计划。例如，防病毒软件的关联可能会每天在 AWS 账户中的所有托管式节点上运行一次。如果该软件未安装在节点上，则关联可以指示 State Manager 安装该软件。如果已安装该软件，但未运行服务，则关联可以指示 State Manager 开启服务。

**警告**  
创建关联时，可以选择托管式节点的 AWS 资源组作为关联的目标。如果 AWS Identity and Access Management (IAM) 用户、组或角色有权限创建将托管式节点资源组设为目标的关联，则该用户、组或角色将自动具有组中所有节点的根级控制权。只允许受信任的管理员创建关联。

**关联目标和速率控制**  
关联将指定哪些托管节点或目标应该接收关联。State Manager 包括的一些功能可帮助您将托管节点设置为目标，并控制如何将关联部署到这些目标。有关目标和速率控制的更多信息，请参阅 [了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)。

**为关联添加标签**  
通过使用命令行工具（如 AWS CLI 或 AWS Tools for PowerShell）创建关联时，可以将标签指定给关联。不支持使用 Systems Manager 控制台将标签添加到关联。

**运行关联**  
默认情况下，State Manager 将在您创建关联后立即运行关联，然后根据您定义的计划运行。

该系统还会根据以下规则运行关联：
+ State Manager 在间隔期间会尝试在所有指定或目标节点上运行关联。
+ 如果在某个周期内未运行某一关联（例如，由于并发值限制了可以同时处理关联的节点数），State Manager 将尝试在下一个周期运行该关联。
+ State Manager 将在更改关联的配置、目标节点、文档或参数后运行关联。有关更多信息，请参阅 [了解何时将关联应用于资源](state-manager-about.md#state-manager-about-scheduling)。
+ State Manager 会记录所有已跳过间隔的历史记录。可在 **Execution History (执行历史记录)** 选项卡上查看历史记录。

## 为关联制定计划
<a name="state-manager-about-creating-associations"></a>

您可以安排关联以基本间隔（如*每 10 小时*）运行，也可以使用自定义 cron 和费率表达式创建更高级的计划。您还可以在首次创建关联时阻止关联运行。

**使用 cron 和 rate 表达式为关联运行制定计划**  
除了标准 cron 和 rate 表达式外，State Manager 还支持多种 cron 表达式，其中包括在一周中的某一天运行关联，以及用于指定在一个月中的第 *n* 天运行关联的数字符号（\$1）。以下是一个在每月的第三个星期二 23:30 UTC 运行 cron 计划的示例：

`cron(30 23 ? * TUE#3 *)`

以下是一个在每月的第二个星期四在 UTC 午夜运行的示例：

`cron(0 0 ? * THU#2 *)`

State Manager 还支持 (L) 符号来表示一个月的最后一个 *X* 天。以下是一个在每月的最后一个星期二 UTC 午夜运行 cron 计划的示例：

`cron(0 0 ? * 3L *)`

要进一步控制关联运行的时间，例如，如果您想在星期二补丁后两天运行关联，可以指定偏移量。*偏移量*定义了在计划日期之后等待多少天再运行关联。例如，如果指定的 cron 计划为 `cron(0 0 ? * THU#2 *)`，则可以在 **Schedule offset**（计划偏移量）字段中指定数字 3，以便在每月的第二个星期四之后的每个星期天运行关联。

**注意**  
要使用偏移量，必须在控制台中选择**仅在下一个指定的 Cron 周期应用关联**，或从命令行指定 `ApplyOnlyAtCronInterval` 参数。在激活其中任一选项后，State Manager 不会在您创建关联后立即运行该关联。

有关 cron 和 rate 表达式的更多信息，请参阅 [参考：适用于 Systems Manager 的 Cron 和 Rate 表达式](reference-cron-and-rate-expressions.md)。

## 创建关联（控制台）
<a name="state-manager-associations-console"></a>

以下过程介绍了如何使用 Systems Manager 控制台创建 State Manager 关联。

**注意**  
请注意以下信息。  
此过程描述如何创建使用 `Command` 或 `Policy` 文档来将托管式节点设为目标的关联。有关创建使用自动化运行手册以将节点或其他类型 AWS 资源设为目标的关联的信息，请参阅 [使用 State Manager 关联调度自动化](scheduling-automations-state-manager-associations.md)。
创建关联时，您可以使用 AWS 管理控制台 指定最多五个标签键。当前必须将为关联指定的*所有*标签键分配给该节点。如果没有分配给该节点，则 State Manager 无法将该节点作为关联目标。

**创建 State Manager 关联**

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

1. 在导航窗格中，请选择 **State Manager**。

1. 选择 **Create association（创建关联）**。

1. 在**名称** 字段中指定名称。

1. 在**文档**列表中，选择文档名称旁边的选项。请注意文档类型。此过程适用于 `Command` 和 `Policy` 文档。有关创建使用自动化运行手册的关联的信息，请参阅 [使用 State Manager 关联调度自动化](scheduling-automations-state-manager-associations.md)。
**重要**  
如果该文档是从其他账户共享的，则 State Manager 不支持运行使用该文档的新版本的关联。如果文档是共享自另一个账户，即使 Systems Manager 控制台显示已处理该文档的新版本，状态管理器仍会运行该文档的 `default` 版本。如果要使用共享自另一个账户的文档的新版本来运行关联，则必须将文档版本设置为 `default`。

1. 对于 **Parameters (参数)**，请指定所需的输入参数。

1. （可选）对于**关联分派代入角色**，请从下拉列表中选择一个角色。状态管理器将使用此角色代表您执行操作。有关设置自定义提供的角色的信息，请参阅[为 `AssociationDispatchAssumeRole` 设置角色](state-manager-about.md#setup-assume-role) 
**注意**  
建议您定义一个自定义 IAM 角色，从而完全控制状态管理器在代表您执行操作时所拥有的权限。  
状态管理器中对服务相关角色的支持将逐步停用。将来，依赖服务相关角色的关联可能需要更新后才能继续正常运行。  
有关管理自定义提供的角色使用情况的信息，请参阅[使用 `ssm:AssociationDispatchAssumeRole` 管理 AssociationDispatchAssumeRole 的使用情况](state-manager-about.md#context-key-assume-role)。

1. （可选）选择一个 CloudWatch 警报以应用于您的关联进行监控。
**注意**  
请注意与该步骤相关的以下信息。  
警报列表最多显示 100 个警报。如果您未在列表中看到您的警报，请使用 AWS Command Line Interface 创建关联。有关更多信息，请参阅 [创建关联（命令行）](#create-state-manager-association-commandline)。
要将 CloudWatch 警报附加到命令，创建关联的 IAM 主体必须具有 `iam:createServiceLinkedRole` 操作的权限。有关 CloudWatch 警报的更多信息，请参阅[使用 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。
如果您的警报激活，任何待处理的命令调用或自动化都不会运行。

1. 对于 **Targets (目标)**，选择一个选项。有关使用目标的信息，请参阅 [了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)。
**注意**  
为了在检测到新的目标节点时应用使用自动化运行手册创建的关联，必须满足某些条件。有关信息，请参阅[关于使用自动化运行手册进行目标更新](state-manager-about.md#runbook-target-updates)。

1. 在 **Specify schedule (指定计划)** 部分中，选择 **On Schedule (按计划)** 或 **No schedule (无计划)**。如果选择 **On Schedule (按计划)**，则可使用提供的按钮为关联创建 cron 或 rate 计划。

   如果您不希望关联在创建后立即运行，请选中 **Apply association only at the next specified Cron interval (仅在下一个指定的 Cron 周期应用关联)**。

1. （可选）在 **Schedule offset**（计划偏移量）字段中，指定一个介于 1 和 6 之间的数字。

1. 在**高级选项**部分使用**合规性严重性**选择关联的严重级别，然后使用**更改日历**选择关联的更改日历。

   合规性报告指示关联状态是合规还是不合规以及您在此处指示的严重级别。有关更多信息，请参阅 [关于 State Manager 关联合规性](compliance-about.md#compliance-about-association)。

   更改日历确定关联何时运行。如果日历已关闭，则不应用关联。如果日历处于打开状态，则相应地运行关联。有关更多信息，请参阅 [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md)。

1. 在 **Rate control**（速率控制）部分中，选择用于控制如何在多个节点上运行关联的选项。有关使用速率控制的更多信息，请参阅 [了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)。

   在**并发**部分中，选择一个选项：
   + 选择 **targets (目标)** 输入可同时运行关联的目标的绝对数量。
   + 选择 **percentage (百分比)** 输入可同时运行关联的目标集的百分比。

   在**错误阈值**部分中，选择一个选项：
   + 选择 **errors (错误)** 以输入允许的错误绝对数量，超过该数量后 State Manager 停止对其他目标运行关联。
   + 选择 **percentage (百分比)** 以输入允许的错误百分比，超过该百分比后 State Manager 停止对其他目标运行关联。

1. （可选）对于 **Output options (输出选项)**，要将命令输出保存到文件，请选中 **Enable writing output to S3 (启用将输出写入 S3)** 方框。在方框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给托管式节点的实例配置文件的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 AWS 账户 中，请确认与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

   以下是为关联打开 Amazon S3 输出所需的最低权限。您可以通过将 IAM policy 附加到账户内的用户或角色，以进一步限制访问权限。Amazon EC2 实例配置文件至少应具有一个具有 `AmazonSSMManagedInstanceCore` 托管策略和以下内联策略的 IAM 角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:PutObjectAcl"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   对于最低权限，导出到的 Amazon S3 存储桶必须具有 Amazon S3 控制台定义的默认设置。有关创建存储桶的更多信息，请转至 *Amazon S3 用户指南*中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。
**注意**  
在关联运行期间由 SSM 文档发起的 API 操作未登录 AWS CloudTrail。

1. 选择**创建关联**。

**注意**  
如果您删除已创建的关联，则该关联将不再在该关联的任何目标上运行。

## 创建关联（命令行）
<a name="create-state-manager-association-commandline"></a>

以下过程介绍了如何使用 AWS CLI（在 Linux 或 Windows Server 上）或 Tools for PowerShell 创建 State Manager 关联。本节包括几个示例，说明如何使用目标和速率控制。通过目标和速率控制，您可以将关联分配给数十个或数百个节点，同时控制这些关联的执行。有关目标和速率控制的更多信息，请参阅 [了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)。

**重要**  
此过程描述如何创建使用 `Command` 或 `Policy` 文档来将托管式节点设为目标的关联。有关创建使用自动化运行手册以将节点或其他类型 AWS 资源设为目标的关联的信息，请参阅 [使用 State Manager 关联调度自动化](scheduling-automations-state-manager-associations.md)。

**开始前的准备工作**  
`targets` 参数是一组搜索条件，使用您指定的 `Key`,`Value` 组合将节点设为目标。如果您计划使用 `targets` 参数在数十个或数百个节点上创建关联，请在开始该过程之前查看以下设置目标选项。

通过指定 ID 将特定节点设为目标

```
--targets Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3
```

```
--targets Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
```

通过使用标签将实例设为目标

```
--targets Key=tag:tag-key,Values=tag-value-1,tag-value-2,tag-value-3
```

```
--targets Key=tag:Environment,Values=Development,Test,Pre-production
```

通过使用 AWS Resource Groups 将节点设为目标

```
--targets Key=resource-groups:Name,Values=resource-group-name
```

```
--targets Key=resource-groups:Name,Values=WindowsInstancesGroup
```

在当前 AWS 账户 和 AWS 区域 将所有的实例设为目标

```
--targets Key=InstanceIds,Values=*
```

**注意**  
请注意以下信息。  
如果该文档是从其他账户共享的，则 State Manager 不支持运行使用该文档的新版本的关联。如果文档是共享自另一个账户，即使 Systems Manager 控制台显示已处理该文档的新版本，状态管理器仍会运行该文档的 `default` 版本。如果要使用共享自另一个账户的文档的新版本来运行关联，则必须将文档版本设置为 `default`。
State Manager 不支持 [TargetLocation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_TargetLocation.html) 的 `IncludeChildOrganizationUnits`、`ExcludeAccounts`、`TargetsMaxErrors`、`TargetsMaxConcurrency`、`Targets`、`TargetLocationAlarmConfiguration` 参数。
您可以使用 AWS CLI 指定最多五个标签键。如果使用 AWS CLI，则 `create-association` 命令中指定的*所有*标签键当前都必须分配给该节点。如果没有分配给该节点，则 State Manager 无法将该节点作为关联目标。
当创建关联时，需要指定计划运行的时间。使用 cron 或 rate 表达式指定计划。有关 cron 和 rate 表达式的更多信息，请参阅 [适用于关联的 Cron 和 Rate 表达式](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association)。
为了在检测到新的目标节点时应用使用自动化运行手册创建的关联，必须满足某些条件。有关信息，请参阅[关于使用自动化运行手册进行目标更新](state-manager-about.md#runbook-target-updates)。

**创建关联**

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

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

1. 使用以下格式创建一个命令以创建 State Manager 关联。将每个*示例资源占位符*替换为您自己的信息。

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

   ```
   aws ssm create-association \
       --name document_name \
       --document-version version_of_document_applied \
       --instance-id instances_to_apply_association_on \
       --parameters (if any) \
       --targets target_options \
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations \
       --schedule-expression "cron_or_rate_expression" \
       --apply-only-at-cron-interval required_parameter_for_schedule_offsets \
       --schedule-offset number_between_1_and_6 \
       --output-location s3_bucket_to_store_output_details \
       --association-name association_name \
       --max-errors a_number_of_errors_or_a_percentage_of_target_set \
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set \
       --compliance-severity severity_level \
       --calendar-names change_calendar_names \
       --target-locations aws_region_or_account \
       --tags "Key=tag_key,Value=tag_value"
   ```

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

   ```
   aws ssm create-association ^
       --name document_name ^
       --document-version version_of_document_applied ^
       --instance-id instances_to_apply_association_on ^
       --parameters (if any) ^
       --targets target_options ^
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations ^
       --schedule-expression "cron_or_rate_expression" ^
       --apply-only-at-cron-interval required_parameter_for_schedule_offsets ^
       --schedule-offset number_between_1_and_6 ^
       --output-location s3_bucket_to_store_output_details ^
       --association-name association_name ^
       --max-errors a_number_of_errors_or_a_percentage_of_target_set ^
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set ^
       --compliance-severity severity_level ^
       --calendar-names change_calendar_names ^
       --target-locations aws_region_or_account ^
       --tags "Key=tag_key,Value=tag_value"
   ```

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

   ```
   New-SSMAssociation `
       -Name document_name `
       -DocumentVersion version_of_document_applied `
       -InstanceId instances_to_apply_association_on `
       -Parameters (if any) `
       -Target target_options `
       -AssociationDispatchAssumeRole arn_of_role_to_be_used_when_dispatching_configurations `
       -ScheduleExpression "cron_or_rate_expression" `
       -ApplyOnlyAtCronInterval required_parameter_for_schedule_offsets `
       -ScheduleOffSet number_between_1_and_6 `
       -OutputLocation s3_bucket_to_store_output_details `
       -AssociationName association_name `
       -MaxError  a_number_of_errors_or_a_percentage_of_target_set
       -MaxConcurrency a_number_of_instances_or_a_percentage_of_target_set `
       -ComplianceSeverity severity_level `
       -CalendarNames change_calendar_names `
       -TargetLocations aws_region_or_account `
       -Tags "Key=tag_key,Value=tag_value"
   ```

------

   以下示例在已贴标签 `"Environment,Linux"` 的节点上创建关联。该关联在每个星期日 2:00 UTC 时使用 `AWS-UpdateSSMAgent` 文档更新目标节点上的 SSM Agent。该关联在任意给定时间最多在 10 个节点上同时运行。此外，当错误计数超过 5 时，将在特定执行间隔内停止在更多节点上运行该关联。对于合规性报告，为该关联分配中等严重级别。

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --targets Key=tag:Environment,Values=Linux \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN *)" \
     --max-errors "5" \
     --max-concurrency "10"
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --targets Key=tag:Environment,Values=Linux ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN *)" ^
     --max-errors "5" ^
     --max-concurrency "10"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_Linux `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="tag:Environment"
         "Values"="Linux"
       } `
     -ComplianceSeverity MEDIUM `
     -ScheduleExpression "cron(0 2 ? * SUN *)" `
     -MaxConcurrency 10 `
     -MaxError 5
   ```

------

   以下示例通过指定通配符值 (\$1) 来将节点 ID 指定为目标。这允许 Systems Manager 在当前 AWS 账户 和 AWS 区域 中的*所有*节点上创建关联。该关联在任意给定时间最多在 10 个节点上同时运行。此外，当错误计数超过 5 时，将在特定执行间隔内停止在更多节点上运行该关联。对于合规性报告，为该关联分配中等严重级别。此关联使用了计划偏移量，这意味着将在指定的 cron 计划后两天运行。其还包括 `ApplyOnlyAtCronInterval` 参数，该参数是使用计划偏移量所必需的，这意味着关联在创建后不会立即运行。

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --name "AWS-UpdateSSMAgent" \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --targets "Key=instanceids,Values=*" \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN#2 *)" \
     --apply-only-at-cron-interval \
     --schedule-offset 2 \
     --max-errors "5" \
     --max-concurrency "10" \
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --name "AWS-UpdateSSMAgent" ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --targets "Key=instanceids,Values=*" ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN#2 *)" ^
     --apply-only-at-cron-interval ^
     --schedule-offset 2 ^
     --max-errors "5" ^
     --max-concurrency "10" ^
     --apply-only-at-cron-interval
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_All `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="InstanceIds"
         "Values"="*"
       } `
     -ScheduleExpression "cron(0 2 ? * SUN#2 *)" `
     -ApplyOnlyAtCronInterval `
     -ScheduleOffset 2 `
     -MaxConcurrency 10 `
     -MaxError 5 `
     -ComplianceSeverity MEDIUM `
     -ApplyOnlyAtCronInterval
   ```

------

   以下示例在 Resource Groups 中的节点上创建关联。该组名为“HR-Department”。该关联在每个星期日 2:00 UTC 时使用 `AWS-UpdateSSMAgent` 文档更新目标节点上的 SSM Agent。该关联在任意给定时间最多在 10 个节点上同时运行。此外，当错误计数超过 5 时，将在特定执行间隔内停止在更多节点上运行该关联。对于合规性报告，为该关联分配中等严重级别。此关联按指定的 cron 计划运行。它不会在创建后立即运行。

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

   ```
   aws ssm create-association \
     --association-name Update_SSM_Agent_Linux \
     --targets Key=resource-groups:Name,Values=HR-Department \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --compliance-severity "MEDIUM" \
     --schedule-expression "cron(0 2 ? * SUN *)" \
     --max-errors "5" \
     --max-concurrency "10" \
     --apply-only-at-cron-interval
   ```

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

   ```
   aws ssm create-association ^
     --association-name Update_SSM_Agent_Linux ^
     --targets Key=resource-groups:Name,Values=HR-Department ^
     --name AWS-UpdateSSMAgent  ^
     -association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --compliance-severity "MEDIUM" ^
     --schedule-expression "cron(0 2 ? * SUN *)" ^
     --max-errors "5" ^
     --max-concurrency "10" ^
     --apply-only-at-cron-interval
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName Update_SSM_Agent_Linux `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="resource-groups:Name"
         "Values"="HR-Department"
       } `
     -ScheduleExpression "cron(0 2 ? * SUN *)" `
     -MaxConcurrency 10 `
     -MaxError 5 `
     -ComplianceSeverity MEDIUM `
     -ApplyOnlyAtCronInterval
   ```

------

   以下示例创建一个关联，该关联在已标记特定节点 ID 的节点上运行。当更改日历处于打开状态时，该关联使用 SSM Agent 文档在目标节点上更新 SSM Agent。关联在运行时检查日历状态。如果日历在启动时关闭，并且关联仅运行一次，则不会再次运行，因为关联运行窗口已通过。如果日历处于打开状态，则相应地运行关联。
**注意**  
如果在更改日历关闭时将新节点添加到关联所依据的标签或 resource groups，则在更改日历打开后，关联将应用于这些节点。

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

   ```
   aws ssm create-association \
     --association-name CalendarAssociation \
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" \
     --schedule-expression "rate(1day)"
   ```

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

   ```
   aws ssm create-association ^
     --association-name CalendarAssociation ^
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" ^
     --schedule-expression "rate(1day)"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName CalendarAssociation `
     -Target @{
         "Key"="tag:instanceids"
         "Values"="i-0cb2b964d3e14fd9f"
       } `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" `
     -ScheduleExpression "rate(1day)"
   ```

------

   以下示例创建一个关联，该关联在已标记特定节点 ID 的节点上运行。该关联在每个星期日 2:00 时使用 SSM Agent 文档更新目标节点上的 SSM Agent。此关联仅在更改日历打开时按指定的 cron 计划运行。创建关联时，它会检查日历状态。如果日历已关闭，则不应用关联。当应用关联的时间间隔从星期日凌晨 2:00 开始时，关联将检查日历是否处于打开状态。如果日历处于打开状态，则相应地运行关联。
**注意**  
如果在更改日历关闭时将新节点添加到关联所依据的标签或 resource groups，则在更改日历打开后，关联将应用于这些节点。

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

   ```
   aws ssm create-association \
     --association-name MultiCalendarAssociation \
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \
     --name AWS-UpdateSSMAgent  \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

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

   ```
   aws ssm create-association ^
     --association-name MultiCalendarAssociation ^
     --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" ^
     --name AWS-UpdateSSMAgent  ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" ^
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

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

   ```
   New-SSMAssociation `
     -AssociationName MultiCalendarAssociation `
     -Name AWS-UpdateSSMAgent `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -Target @{
         "Key"="tag:instanceids"
         "Values"="i-0cb2b964d3e14fd9f"
       } `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2" `
     -ScheduleExpression "cron(0 2 ? * SUN *)"
   ```

------

**注意**  
如果您删除已创建的关联，则该关联将不再在该关联的任何目标上运行。此外，如果指定了 `apply-only-at-cron-interval` 参数，还可以重置此选项。要执行此操作，请在从命令行更新关联时指定 `no-apply-only-at-cron-interval` 参数。此参数会强制关联在更新后立即运行，以及按照指定的周期运行。

# 编辑和创建关联的新版本
<a name="state-manager-associations-edit"></a>

您可以编辑 State Manager 关联以指定新名称、计划、严重级别、目标或其他值。对于基于 SSM 命令类型文档的关联，您也可以选择将命令输出写入 Amazon Simple Storage Service（Amazon S3）存储桶。编辑关联后，State Manager 将创建新版本。您可以在编辑后查看不同的版本，如以下过程中所述。

**注意**  
为了在检测到新的目标节点时应用使用自动化运行手册创建的关联，必须满足某些条件。有关信息，请参阅[关于使用自动化运行手册进行目标更新](state-manager-about.md#runbook-target-updates)。

以下过程介绍了如何使用 Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for PowerShell (Tools for PowerShell) 编辑和创建关联的新版本。

**重要**  
如果该文档是从其他账户共享的，则 State Manager 不支持运行使用该文档的新版本的关联。如果文档是从其他账户共享的，则 State Manager 始终会运行文档的 `default` 版本，即使 Systems Manager 控制台显示已处理了该文档的新版本。如果要使用共享自另一个账户的文档的新版本来运行关联，则必须将文档版本设置为 `default`。

## 编辑关联（控制台）
<a name="state-manager-associations-edit-console"></a>

以下过程介绍了如何使用 Systems Manager 控制台编辑和创建关联的新版本。

**注意**  
对于使用 SSM 命令文档而非自动化运行手册的关联，此过程要求您具有对现有 Amazon S3 存储桶的写入权限。如果您之前未使用 Amazon S3，请注意使用 Amazon S3 会产生费用。有关如何创建存储桶的信息，请参阅[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)。

**编辑 State Manager 关联**

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

1. 在导航窗格中，请选择 **State Manager**。

1. 选择现有的关联，然后选择**编辑**。

1. 重新配置关联以满足当前要求。

   有关与 `Command` 和 `Policy` 文档的关联选项的信息，请参阅 [创建关联](state-manager-associations-creating.md)。有关与自动化运行手册的关联选项的信息，请参阅 [使用 State Manager 关联调度自动化](scheduling-automations-state-manager-associations.md)。

1. 选择**保存更改**。

1. （可选）若要查看关联信息，在**关联**页面中，选择已编辑的关联的名称，然后选择**版本**选项卡。系统将列出您已创建和编辑的关联的每个版本。

1. （可选）若要查看基于 SSM `Command` 文档的关联输出，请执行以下操作：

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

   1. 选择您指定用于存储命令输出的 Simple Storage Service (Amazon S3) 存储桶的名称，然后选择以运行关联的节点的 ID 命名的文件夹。(如果您选择将输出存储在存储桶中的文件夹内，请先打开它。)

   1. 下拉多个级别至 `stdout` 文件夹中的 `awsrunPowerShell` 文件。

   1. 选择**打开**或**下载**查看主机名。

## 编辑关联（命令行）
<a name="state-manager-associations-edit-commandline"></a>

以下过程介绍了如何使用 AWS CLI（在 Linux 或 Windows Server 上）或 AWS Tools for PowerShell 编辑和创建关联的新版本。

**编辑 State Manager 关联**

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

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

1. 使用以下格式创建一个命令，以编辑和创建现有 State Manager 关联的新版本。将每个*示例资源占位符*替换为您自己的信息。
**重要**  
当您调用 `[https://docs.aws.amazon.com/cli/latest/reference/ssm/desupdatecribe-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/desupdatecribe-association.html)` 时，系统会从请求中删除所有可选参数，并用这些参数的 null 值覆盖关联。这是设计使然。即使没有更改参数，您也必须在调用中指定所有可选参数，包括 `--name` 参数。在调用此操作之前，建议先调用 `[https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-association.html)` 操作，并记下 `update-association` 调用所需的所有可选参数。

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

   ```
   aws ssm update-association \
       --name document_name \
       --document-version version_of_document_applied \
       --instance-id instances_to_apply_association_on \
       --parameters (if any) \
       --targets target_options \
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations \
       --schedule-expression "cron_or_rate_expression" \
       --schedule-offset "number_between_1_and_6" \
       --output-location s3_bucket_to_store_output_details \
       --association-name association_name \
       --max-errors a_number_of_errors_or_a_percentage_of_target_set \
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set \
       --compliance-severity severity_level \
       --calendar-names change_calendar_names \
       --target-locations aws_region_or_account
   ```

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

   ```
   aws ssm update-association ^
       --name document_name ^
       --document-version version_of_document_applied ^
       --instance-id instances_to_apply_association_on ^
       --parameters (if any) ^
       --targets target_options ^
       --association-dispatch-assume-role arn_of_role_to_be_used_when_dispatching_configurations ^
       --schedule-expression "cron_or_rate_expression" ^
       --schedule-offset "number_between_1_and_6" ^
       --output-location s3_bucket_to_store_output_details ^
       --association-name association_name ^
       --max-errors a_number_of_errors_or_a_percentage_of_target_set ^
       --max-concurrency a_number_of_instances_or_a_percentage_of_target_set ^
       --compliance-severity severity_level ^
       --calendar-names change_calendar_names ^
       --target-locations aws_region_or_account
   ```

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

   ```
   Update-SSMAssociation `
       -Name document_name `
       -DocumentVersion version_of_document_applied `
       -InstanceId instances_to_apply_association_on `
       -Parameters (if any) `
       -Target target_options `
       -AssociationDispatchAssumeRole arn_of_role_to_be_used_when_dispatching_configurations `
       -ScheduleExpression "cron_or_rate_expression" `
       -ScheduleOffset "number_between_1_and_6" `
       -OutputLocation s3_bucket_to_store_output_details `
       -AssociationName association_name `
       -MaxError  a_number_of_errors_or_a_percentage_of_target_set
       -MaxConcurrency a_number_of_instances_or_a_percentage_of_target_set `
       -ComplianceSeverity severity_level `
       -CalendarNames change_calendar_names `
       -TargetLocations aws_region_or_account
   ```

------

   以下示例更新现有关联以将名称更改为 `TestHostnameAssociation2`。新的关联版本每小时运行一次，并将命令输出写入到指定的 Amazon S3 存储桶中。

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name TestHostnameAssociation2 \
     --parameters commands="echo Association" \
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --schedule-expression "cron(0 */1 * * ? *)"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name TestHostnameAssociation2 ^
     --parameters commands="echo Association" ^
     --association-dispatch-assume-role arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --schedule-expression "cron(0 */1 * * ? *)"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName TestHostnameAssociation2 `
     -Parameter @{"commands"="echo Association"} `
     -AssociationDispatchAssumeRole "arn:aws:iam::123456789012:role/myAssociationDispatchAssumeRole" `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -S3Location_OutputS3KeyPrefix logs `
     -S3Location_OutputS3Region us-east-1 `
     -ScheduleExpression "cron(0 */1 * * ? *)"
   ```

------

   以下示例更新现有关联以将名称更改为 `CalendarAssociation`。新关联在日历打开时运行，并将命令输出写入指定的 Amazon S3 存储桶。

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name CalendarAssociation \
     --parameters commands="echo Association" \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name CalendarAssociation ^
     --parameters commands="echo Association" ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName CalendarAssociation `
     -AssociationName OneTimeAssociation `
     -Parameter @{"commands"="echo Association"} `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
   ```

------

   以下示例更新现有关联以将名称更改为 `MultiCalendarAssociation`。当日历打开并将命令输出写入指定的 Amazon S3 存储桶时，新关联将运行。

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

   ```
   aws ssm update-association \
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \
     --association-name MultiCalendarAssociation \
     --parameters commands="echo Association" \
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

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

   ```
   aws ssm update-association ^
     --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^
     --association-name MultiCalendarAssociation ^
     --parameters commands="echo Association" ^
     --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^
     --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

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

   ```
   Update-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE `
     -AssociationName MultiCalendarAssociation `
     -Parameter @{"commands"="echo Association"} `
     -S3Location_OutputS3BucketName amzn-s3-demo-bucket `
     -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
   ```

------

1. 要查看关联的新版本，请运行以下命令。

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

   ```
   aws ssm describe-association \
     --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
   ```

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

   ```
   aws ssm describe-association ^
     --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
   ```

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

   ```
   Get-SSMAssociation `
     -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE | Select-Object *
   ```

------

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

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

   ```
   {
       "AssociationDescription": {
           "ScheduleExpression": "cron(0 */1 * * ? *)",
           "OutputLocation": {
               "S3Location": {
                   "OutputS3KeyPrefix": "logs",
                   "OutputS3BucketName": "amzn-s3-demo-bucket",
                   "OutputS3Region": "us-east-1"
               }
           },
           "Name": "AWS-RunPowerShellScript",
           "Parameters": {
               "commands": [
                   "echo Association"
               ]
           },
           "LastExecutionDate": 1559316400.338,
           "Overview": {
               "Status": "Success",
               "DetailedStatus": "Success",
               "AssociationStatusAggregatedCount": {}
           },
           "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
           "DocumentVersion": "$DEFAULT",
           "LastSuccessfulExecutionDate": 1559316400.338,
           "LastUpdateAssociationDate": 1559316389.753,
           "Date": 1559314038.532,
           "AssociationVersion": "2",
           "AssociationName": "TestHostnameAssociation2",
           "Targets": [
               {
                   "Values": [
                       "Windows"
                   ],
                   "Key": "tag:Environment"
               }
           ]
       }
   }
   ```

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

   ```
   {
       "AssociationDescription": {
           "ScheduleExpression": "cron(0 */1 * * ? *)",
           "OutputLocation": {
               "S3Location": {
                   "OutputS3KeyPrefix": "logs",
                   "OutputS3BucketName": "amzn-s3-demo-bucket",
                   "OutputS3Region": "us-east-1"
               }
           },
           "Name": "AWS-RunPowerShellScript",
           "Parameters": {
               "commands": [
                   "echo Association"
               ]
           },
           "LastExecutionDate": 1559316400.338,
           "Overview": {
               "Status": "Success",
               "DetailedStatus": "Success",
               "AssociationStatusAggregatedCount": {}
           },
           "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
           "DocumentVersion": "$DEFAULT",
           "LastSuccessfulExecutionDate": 1559316400.338,
           "LastUpdateAssociationDate": 1559316389.753,
           "Date": 1559314038.532,
           "AssociationVersion": "2",
           "AssociationName": "TestHostnameAssociation2",
           "Targets": [
               {
                   "Values": [
                       "Windows"
                   ],
                   "Key": "tag:Environment"
               }
           ]
       }
   }
   ```

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

   ```
   AssociationId                 : b85ccafe-9f02-4812-9b81-01234EXAMPLE
   AssociationName               : TestHostnameAssociation2
   AssociationVersion            : 2
   AutomationTargetParameterName : 
   ComplianceSeverity            : 
   Date                          : 5/31/2019 2:47:18 PM
   DocumentVersion               : $DEFAULT
   InstanceId                    : 
   LastExecutionDate             : 5/31/2019 3:26:40 PM
   LastSuccessfulExecutionDate   : 5/31/2019 3:26:40 PM
   LastUpdateAssociationDate     : 5/31/2019 3:26:29 PM
   MaxConcurrency                : 
   MaxErrors                     : 
   Name                          : AWS-RunPowerShellScript
   OutputLocation                : Amazon.SimpleSystemsManagement.Model.InstanceAssociationOutputLocation
   Overview                      : Amazon.SimpleSystemsManagement.Model.AssociationOverview
   Parameters                    : {[commands, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
   ScheduleExpression            : cron(0 */1 * * ? *)
   Status                        : 
   Targets                       : {tag:Environment}
   ```

------

# 删除关联
<a name="systems-manager-state-manager-delete-association"></a>

可以使用以下过程，通过使用 AWS Systems Manager 控制台删除关联。

**删除关联**

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

1. 在导航窗格中，请选择 **State Manager**。

1. 选择某一关联，然后选择**删除**。

通过从 AWS Systems Manager 控制台运行自动化，可以在单个操作中删除多个关联。当您选择多个关联进行删除时，State Manager 会启动自动化运行手册起始页面，并将关联 ID 作为输入参数值输入。

**要在单个操作中删除多个关联**

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

1. 在导航窗格中，请选择 **State Manager**。

1. 选择要删除的每个关联，然后选择**删除**。

1. （可选）在**其他输入参数**区域中，选择您希望自动化在运行时使用的*代入角色*的 Amazon 资源名称（ARN）。要创建新的代入角色，请选择**创建**。

1. 选择**提交**。

# 运行 Auto Scaling 组
<a name="systems-manager-state-manager-asg"></a>

使用关联运行 Auto Scaling 组时的最佳做法是使用标记目标。不使用标签可能会导致您达到关联限制。

如果所有节点都使用相同的键和值进行标记，则您只需要一个关联即可运行 Auto Scaling 组。以下过程介绍了如何创建关联。

**创建运行 Auto Scaling 组的关联**

1. 确保 Auto Scaling 组中的所有节点都使用相同的键和值进行标记。有关标签节点的更多说明，请参阅*AWS Auto Scaling 用户指南*中的[标记 Auto Scaling 组和实例](https://docs.aws.amazon.com//autoscaling/ec2/userguide/autoscaling-tagging.html)。

1. 通过使用 [在 Systems Manager 中使用关联。](state-manager-associations.md) 中的过程来创建关联。

   如果您在控制台中使用，请选择**目标**字段中的**指定实例标签**返回的子位置类型。对于**实例标签**，请输入 Auto Scaling 组的**标记**键和值。

   如果您使用的是AWS Command Line Interface(AWS CLI)，请指定其中键和值与您标记节点的内容相匹配的`--targets Key=tag:tag-key,Values=tag-value`。

# 查看关联历史记录
<a name="state-manager-associations-history"></a>

您可以使用 [DescribeAssociationExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAssociationExecutions.html) API 操作查看特定关联 ID 的所有执行。使用此操作可查看State Manager关联的状态、详细状态、结果、上次执行时间以及其他信息。State Manager是 AWS Systems Manager 中的一项工具。此 API 操作还包括筛选条件，帮助您根据指定的条件快速找到关联。例如，您可以指定一个确切的日期和时间，并使用 GREATER\$1THAN 筛选条件以查看在该指定的日期和时间之后处理的那些执行。

例如，如果一个关联执行失败，则可使用 [DescribeAssociationExecutionTargets](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAssociationExecutionTargets.html) API 操作来深入了解特定执行的详细信息。此操作将为您显示资源，例如节点 ID、关联运行的位置和各种关联状态。您可以查看哪些资源或节点无法运行关联。利用资源 ID，您随后可以查看命令执行详细信息，以了解命令中的哪个步骤已失败。

本节中的示例还包括有关如何在创建时使用 [StartAssociationsOnce](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAssociationsOnce.html) API 操作运行一次关联的信息。在调查失败的关联执行时，可以使用此 API 操作。如果发现一个关联失败，则可以在资源上进行更改，然后立即运行关联以查看对资源所做的更改是否可让关联成功运行。

**注意**  
在关联运行期间由 SSM 文档发起的 API 操作未登录 AWS CloudTrail。

## 查看关联历史记录（控制台）
<a name="state-manager-associations-history-console"></a>

使用以下过程可查看特定关联 ID 的执行历史记录，然后查看一个或多个资源的执行详细信息。

**查看特定关联 ID 的执行历史记录**

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

1. 选择 **State Manager**。

1. 在 **Association id (关联 ID)** 字段中，选择要查看其历史记录的关联。

1. 选择 **View details (查看详细信息)** 按钮。

1. 选择 **Execution history (执行历史记录)** 选项卡。

1. 选择要查看其资源级别执行详细信息的关联。例如，选择显示 **Failed (失败)** 状态的关联。然后，您可以查看无法运行关联的节点的执行详细信息。

   使用搜索框筛选条件以找到要查看其详细信息的执行。  
![\[筛选 State Manager 关联执行的列表。\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/sysman-state-executions-filter.png)

1. 选择执行 ID。此时将打开 **Association execution targets (关联执行目标)** 页面。此页面显示所有已运行关联的资源。

1. 选择一个资源 ID 以查看有关此资源的特定信息。

   使用搜索框筛选条件以找到要查看其详细信息的资源。  
![\[筛选 State Manager 关联执行目标的列表。\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/sysman-state-executions-targets-filter.png)

1. 如果您正在调查无法运行的关联，则在创建时可使用 **Apply association now (立即应用关联)** 按钮来运行一次关联。在对无法运行关联的资源进行更改后，在导航位置提示中选择 **Association ID (关联 ID)** 链接。

1. 选择 **Apply association now (立即应用关联)** 按钮。在执行完成后，验证关联执行是否成功。

## 查看关联历史记录（命令行）
<a name="state-manager-associations-history-commandline"></a>

以下过程介绍了如何使用 AWS Command Line Interface（AWS CLI）（在 Linux 或 Windows Server 上）或 AWS Tools for PowerShell 查看特定关联 ID 的执行历史记录。然后，该过程介绍了如何查看一个或多个资源的执行详细信息。

**查看特定关联 ID 的执行历史记录**

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

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

1. 运行以下命令以查看特定关联 ID 的执行列表。

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN
   ```

**注意**  
此命令包含一个筛选条件，可将结果限定为仅在特定日期和时间之后发生的那些执行。如果要查看特定关联 ID 的所有执行，请删除 `--filters` 参数和 ` Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN` 值。

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN
   ```

**注意**  
此命令包含一个筛选条件，可将结果限定为仅在特定日期和时间之后发生的那些执行。如果要查看特定关联 ID 的所有执行，请删除 `--filters` 参数和 ` Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN` 值。

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId ID `
     -Filter @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="GREATER_THAN"}
   ```

**注意**  
此命令包含一个筛选条件，可将结果限定为仅在特定日期和时间之后发生的那些执行。如果要查看特定关联 ID 的所有执行，请删除 `-Filter` 参数和 ` @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="GREATER_THAN"}` 值。

------

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

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

   ```
   {
      "AssociationExecutions":[
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"76a5a04f-caf6-490c-b448-92c02EXAMPLE",
            "CreatedTime":1523986028.219,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "CreatedTime":1523984226.074,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "CreatedTime":1523982404.013,
            "AssociationVersion":"1"
         }
      ]
   }
   ```

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

   ```
   {
      "AssociationExecutions":[
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"76a5a04f-caf6-490c-b448-92c02EXAMPLE",
            "CreatedTime":1523986028.219,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "CreatedTime":1523984226.074,
            "AssociationVersion":"1"
         },
         {
            "Status":"Success",
            "DetailedStatus":"Success",
            "AssociationId":"c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
            "ExecutionId":"ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "CreatedTime":1523982404.013,
            "AssociationVersion":"1"
         }
      ]
   }
   ```

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

   ```
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/18/2019 2:00:50 AM
   DetailedStatus        : Success
   ExecutionId           : 76a5a04f-caf6-490c-b448-92c02EXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/11/2019 2:00:54 AM
   DetailedStatus        : Success
   ExecutionId           : 791b72e0-f0da-4021-8b35-f95dfEXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   
   AssociationId         : c336d2ab-09de-44ba-8f6a-6136cEXAMPLE
   AssociationVersion    : 1
   CreatedTime           : 8/4/2019 2:01:00 AM
   DetailedStatus        : Success
   ExecutionId           : ecec60fa-6bb0-4d26-98c7-140308EXAMPLE
   LastExecutionDate     : 1/1/0001 12:00:00 AM
   ResourceCountByStatus : {Success=1}
   Status                : Success
   ```

------

   您可以使用一个或多个筛选条件来限制结果。以下示例返回在特定日期和时间之前运行的所有关联。

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=LESS_THAN
   ```

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=LESS_THAN
   ```

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -Filter @{"Key"="CreatedTime";"Value"="2019-06-01T19:15:38.372Z";"Type"="LESS_THAN"}
   ```

------

   下面返回在特定日期和时间之后*成功* 运行的所有关联。

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

   ```
   aws ssm describe-association-executions \
     --association-id ID \
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN Key=Status,Value=Success,Type=EQUAL
   ```

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

   ```
   aws ssm describe-association-executions ^
     --association-id ID ^
     --filters Key=CreatedTime,Value="2018-04-10T19:15:38.372Z",Type=GREATER_THAN Key=Status,Value=Success,Type=EQUAL
   ```

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

   ```
   Get-SSMAssociationExecution `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -Filter @{
         "Key"="CreatedTime";
         "Value"="2019-06-01T19:15:38.372Z";
         "Type"="GREATER_THAN"
       },
       @{
         "Key"="Status";
         "Value"="Success";
         "Type"="EQUAL"
       }
   ```

------

1. 运行以下命令可查看已运行特定执行的所有目标。

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE
   ```

------

   您可以使用一个或多个筛选条件来限制结果。以下示例返回有关所有无法运行特定关联的目标的信息。

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID \
     --filters Key=Status,Value="Failed"
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID ^
     --filters Key=Status,Value="Failed"
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE `
     -Filter @{
         "Key"="Status";
         "Value"="Failed"
       }
   ```

------

   以下示例返回有关无法运行关联的特定托管式节点的信息。

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

   ```
   aws ssm describe-association-execution-targets \
     --association-id ID \
     --execution-id ID \
     --filters Key=Status,Value=Failed Key=ResourceId,Value="i-02573cafcfEXAMPLE" Key=ResourceType,Value=ManagedInstance
   ```

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

   ```
   aws ssm describe-association-execution-targets ^
     --association-id ID ^
     --execution-id ID ^
     --filters Key=Status,Value=Failed Key=ResourceId,Value="i-02573cafcfEXAMPLE" Key=ResourceType,Value=ManagedInstance
   ```

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

   ```
   Get-SSMAssociationExecutionTarget `
     -AssociationId 14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE `
     -ExecutionId 76a5a04f-caf6-490c-b448-92c02EXAMPLE `
     -Filter @{
         "Key"="Status";
         "Value"="Success"
       },
       @{
         "Key"="ResourceId";
         "Value"="i-02573cafcfEXAMPLE"
       },
       @{
         "Key"="ResourceType";
         "Value"="ManagedInstance"
       }
   ```

------

1. 如果您正在调查无法运行的关联，则可使用 [StartAssociationsOnce](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAssociationsOnce.html) API 操作来立即运行且仅运行一次关联。在更改关联无法运行的资源后，运行以下命令以立即运行关联，并且仅运行一次。

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

   ```
   aws ssm start-associations-once \
     --association-id ID
   ```

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

   ```
   aws ssm start-associations-once ^
     --association-id ID
   ```

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

   ```
   Start-SSMAssociationsOnce `
     -AssociationId ID
   ```

------

# 使用 IAM 处理关联
<a name="systems-manager-state-manager-iam"></a>

State Manager（AWS Systems Manager 中的一项工具）使用[目标](systems-manager-state-manager-targets-and-rate-controls.md#systems-manager-state-manager-targets-and-rate-controls-about-targets)选择要使用哪些实例配置关联。最初，关联是通过指定文档名称（`Name`）和实例 ID（`InstanceId`)创建的。这会在文档和实例或托管式节点之间创建关联。通过这些参数标识的关联。这些参数现在已弃用，但仍受支持。资源 `instance` 和 `managed-instance` 作为资源添加到具有 `Name` 和 `InstanceId` 的操作中。

AWS Identity and Access Management (IAM) 策略实施行为取决于指定的资源类型。State Manager 操作的资源仅根据传入的请求强制执行。State Manager 不会对账户中的资源属性进行深入检查。只有当请求参数包含指定的策略资源时，才会根据策略资源验证请求。例如，如果您在资源块中指定了一个实例，则如果请求使用 `InstanceId` 参数，策略会强制执行。不会为`InstanceId` 检查账户中每项资源的 `Targets` 参数。

以下是一些具有混淆的行为的情况：
+  [DescribeAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_DescribeActivations.html)、[DeleteAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_DeleteAssociation.html) 和 [UpdateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_UpdateAssociation.html) 使用 `instance`、`managed-instance` 和 `document` 资源来指定已弃用的引用关联的方式。这包括所有使用已弃用使用的 `InstanceId` 参数创建的关联。
+ [CreateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_CreateAssociation.html)、[CreateAssociationBatch](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_CreateAssociationBatch.html) 和 [UpdateAssociation](https://docs.aws.amazon.com//systems-manager/latest/APIReference/API_UpdateAssociation.html) 使用 `instance` 和 `managed-instance` 资源来指定已弃用的引用关联的方式。这包括所有使用已弃用的 `InstanceId` 参数创建的关联。`document` 资源类型是已弃用的引用关联方式的一部分，并且是关联的实际属性。这意味着您可以根据文档名称为 `Create` 和 `Update` 操作构建具有 `Allow` 或 `Deny` 权限的 IAM 策略。

有关将 IAM 策略与 Systems Manager 配合使用的更多信息，请参阅 *服务授权参考*中的 [对 AWS Systems Manager 进行身份和访问管理](security-iam.md) 或者[操作、资源和条件键 AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)。