

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立關聯
<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 和 Rate 運算式建立更進階的排程。您也可以在第一次建立關聯時阻止執行關聯。

**使用 Cron 和 Rate 運算式來排程關聯執行**  
State Manager 不僅支援標準的 Cron 和 Rate 運算式，還支援這類 Cron 運算式：包含一週中的某一天和數字符號 (\$1)，來指定一個月的第 *n* 天執行關聯。以下是在每月第三個週二 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(0 0 ? * THU#2 *)` 的 cron 排程，則可以在**排程偏移**欄位指定數字 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` 文件將受管節點設為目標的關聯。如需建立使用 Automation Runbook 將節點或其他類型的 AWS 資源設為目標的關聯，請參閱 [使用 State Manager 關聯排程自動化](scheduling-automations-state-manager-associations.md)。
建立關聯時，您可以使用 AWS 管理主控台指定最多五個標籤鍵。為關聯指定的*所有*標籤鍵目前必須指派給節點。否則，State Manager 無法將相應節點作為關聯的目標。

**建立 State Manager 關聯**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **State Manager**。

1. 選擇 **Create association (建立關聯)**。

1. 在 **Name (名稱)** 欄位中指定名稱。

1. 在 **Document (文件)** 清單中，選擇文件名稱旁的選項。請注意文件類型。此程序適用於 `Command` 和 `Policy` 文件。如需建立使用 Automation Runbook 的關聯的相關資訊，請參閱 [使用 State Manager 關聯排程自動化](scheduling-automations-state-manager-associations.md)。
**重要**  
如果該文件是從另一個帳戶共用的，則 State Manager 不支援執行使用新版文件的關聯。如果是從另一個帳戶共用的，則 State Manager 一律執行文件的 `default` 版本，即使 Systems Manager 主控台顯示新版本已處理。如果您想要使用從另一個帳戶共用而來的新版本文件來執行關聯，則必須將文件版本設定為 `default`。

1. 對於 **Parameters (參數)**，指定所需的輸入參數。

1. （選用） 對於**關聯分派擔任角色**，從下拉式清單中選取角色。狀態管理員將代表您使用此角色採取動作。如需設定自訂角色的詳細資訊，請參閱 [的 設定角色 `AssociationDispatchAssumeRole`](state-manager-about.md#setup-assume-role) 
**注意**  
建議您定義自訂 IAM 角色，以便完全控制 State Manager 代表您執行動作時所擁有的許可。  
State Manager 中的服務連結角色支援正在逐步淘汰。依賴服務連結角色的關聯未來可能需要更新，才能繼續正常運作。  
如需管理自訂提供之角色使用的資訊，請參閱 [使用 管理 AssociationDispatchAssumeRole 的使用情況 `ssm: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)。
**注意**  
為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯，必須滿足特定條件。如需相關資訊，請參閱[關於透過 Automation 執行手冊的目標更新](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. 在 **Advanced options** (進階選項) 區段中，使用 **Compliance severity ** (合規嚴重) 選擇關聯的嚴重性等級，並使用 **Change Calendars** (變更行事曆) 選擇關聯的變更行事曆。

   合規報告會指出關聯狀態合規與否，以及您在這裡指示的嚴重性等級。如需詳細資訊，請參閱[關於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)。

   在 **Concurrency (並行)** 部分，選擇一個選項：
   + 選擇 **targets (目標)**，輸入可以同時執行關聯的目標絕對數量。
   + 選擇 **percentage (百分比)**，輸入可以同時執行關聯的目標集百分比。

   在 **Error threshold (錯誤閾值)** 部分，選擇一個選項：
   + 選擇 **errors (錯誤)**，輸入 State Manager 停止在額外目標執行關聯之前允許的錯誤絕對數量。
   + 選擇 **percentage (百分比)**，輸入 State Manager 停止在額外目標執行關聯之前允許的錯誤百分比。

1. (選用) 針對**輸出選項**，若要將命令輸出儲存至檔案，請選取**啟用將輸出寫入 S3** 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
**注意**  
授予能力以將資料寫入至 S3 儲存貯體的 S3 許可，會是指派給受管節點之執行個體設定檔的許可，而不是執行此任務之 IAM 使用者的許可。如需詳細資訊，請參閱[設定 Systems Manager 所需的執行個體許可](setup-instance-permissions.md)或[建立混合環境的 IAM 服務角色](hybrid-multicloud-service-role.md)。此外，若指定的 S3 儲存貯體位於不同的 AWS 帳戶內，請驗證與受管節點相關聯的執行個體設定檔或 IAM 服務角色是否具有寫入該儲存貯體的必要許可。

   以下是開啟關聯的 Amazon Simple Storage Service (Amazon S3) 輸出所需的最低許可。您可以透過將 IAM 政策連接到帳戶內使用者或角色，以進一步限制存取。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 Simple Storage Service (Amazon S3) 儲存貯體必須具備 Amazon Simple Storage Service (Amazon S3) 主控台定義的預設設定。如需有關建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體的詳細資訊，請參閱 *Amazon Simple Storage Service (Amazon S3) 使用者指南*中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。
**注意**  
在關聯執行期間由 SSM 文件啟動的 API 操作不會記錄在 AWS CloudTrail中。

1. 選擇 **Create Association (建立關聯)**。

**注意**  
如果刪除您建立的關聯，關聯將不再在該關聯的任何目標上執行。

## 建立關聯 (命令列)
<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` 文件將受管節點設為目標的關聯。如需建立使用 Automation Runbook 以鎖定節點或其他 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 不支援執行使用新版文件的關聯。如果是從另一個帳戶共用的，則 State Manager 一律執行文件的 `default` 版本，即使 Systems Manager 主控台顯示新版本已處理。如果您想要使用從另一個帳戶共用而來的新版本文件來執行關聯，則必須將文件版本設定為 `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)。
為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯，必須滿足特定條件。如需相關資訊，請參閱[關於透過 Automation 執行手冊的目標更新](state-manager-about.md#runbook-target-updates)。

**建立關聯**

1.  AWS Tools for PowerShell如果您尚未安裝和設定 AWS CLI 或 。

   如需相關資訊，請參閱[安裝或更新 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"` 標籤的節點上建立關聯。關聯會使用 `AWS-UpdateSSMAgent` 文件在每週日的上午 2:00 UTC 更新目標節點上的 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」。該關聯使用 `AWS-UpdateSSMAgent` 文件，在每週日上午 2:00 UTC 更新目標執行個體上的 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。關聯會在執行時檢查行事曆狀態。如果行事曆在啟動時關閉且關聯只執行一次，則它不會再執行一次，因為關聯執行時段已結束。如果行事曆處於開啟狀態，則會相應地執行關聯。
**注意**  
如果您在變更行事曆關閉時，將新節點新增至關聯作用的標籤或資源群組，則在變更行事曆開啟後，關聯就會套用至這些節點。

------
#### [ 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 的節點上執行。關聯會使用 SSM Agent 文件，在每週日的上午 2:00 更新目標節點上的 SSM Agent。當變更行事曆開啟時，此關聯只會在指定的 Cron 排程執行。建立關聯時，它會檢查行事曆狀態。如果行事曆已關閉，則不會套用關聯。當套用關聯的間隔在星期日凌晨 2:00 開始時，關聯會檢查行事曆是否已開啟。如果行事曆處於開啟狀態，則會相應地執行關聯。
**注意**  
如果您在變更行事曆關閉時，將新節點新增至關聯作用的標籤或資源群組，則在變更行事曆開啟後，關聯就會套用至這些節點。

------
#### [ 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` 參數。此參數會在更新關聯後立即強制執行關聯，以及根據指定的間隔強制執行關聯。