

• 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="monitoring-sns-mw-register"></a>

下列程序說明如何使用 AWS Systems Manager 主控台或 AWS Command Line Interface (AWS CLI) 向維護時段註冊Run Command任務。 Run Command 是 中的工具 AWS Systems Manager。此程序也說明如何將 Run Command 任務設定為傳回狀態通知。

**開始之前**  
如果您尚未建立維護時段或註冊目標，請參閱[使用主控台建立和管理維護時段](sysman-maintenance-working.md)，以了解如何建立維護時段和註冊目標的步驟。

若要接收來自 Amazon Simple Notification Service (Amazon SNS) 服務的通知，您必須將 `iam:PassRole` 政策連接到已註冊任務中指定的 Maintenance Windows 服務角色。如果您尚未將 `iam:PassRole` 許可新增至 Maintenance Windows 服務角色，請參閱 [任務 5：將 iam:PassRole 政策連接至維護時段角色](monitoring-sns-notifications.md#monitoring-sns-passpolicy-mw)。

## 向維護時段註冊Run Command任務以傳回通知 (主控台)
<a name="monitoring-sns-mw-register-console"></a>

使用下列程序註冊 Run Command 任務，它已設定為使用 Systems Manager 主控台向您的維護時段傳回狀態通知。

**向維護時段註冊Run Command任務以傳回通知 (主控台)**

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

1. 在導覽窗格中，選擇 **Maintenance Windows**。

1. 選取您要為已設定為傳送 Amazon Simple Notification Service (Amazon SNS) 通知的 Run Command 任務進行註冊的維護時段。

1. 選擇 **Actions** (動作)，然後選擇 **Register Run command task** (註冊執行命令任務)。

1. (選用) 在 **Name** (名稱) 欄位中，輸入任務的名稱。

1. (選用) 在 **Description** (描述) 欄位中，輸入描述。

1. 對於 **Command document** (命令文件)，選擇一個命令文件。

1. 對於 **Task priority (任務優先順序)**，請指定此任務的優先順序。零 (`0`) 是最高的優先順序。維護時段中的任務會依優先順序排程。具有相同優先順序的任務會排程平行處理。

1. 在 **Targets** (目標) 區段中，選取已註冊的目標群組或選取未註冊的目標。

1. 對於**速率控制**：
   + 在**並行**中，指定可同時執行命令的受管節點數目或百分比。
**注意**  
如果您透過指定套用至受管節點的標籤或指定 AWS 資源群組來選取目標，而且不確定目標的受管節點數量，則透過指定百分比來限制可同時執行文件的目標數量。
   + 在 **Error threshold** (錯誤閾值) 中，指定在特定數目或百分比之節點上的命令失敗之後，停止在其他受管節點上執行命令。例如，如果您指定三個錯誤，則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。

1. 在 **IAM service role** (IAM 服務角色) 區域中，選擇具有 SNS 角色 `iam:PassRole` 許可的 Maintenance Windows 服務角色。
**注意**  
將 `iam:PassRole` 許可新增至 Maintenance Windows 角色，以允許 Systems Manager 將 SNS 角色 傳遞至 Amazon SNS。如果您尚未新增 `iam:PassRole` 許可，請參閱[使用 Amazon SNS 通知監控 Systems Manager 狀態變更](monitoring-sns-notifications.md)主題中的任務 5。

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

1. 在 **SNS notifications** (SNS 通知) 區段中，執行以下操作：
   + 選擇 **Enable SNS Notifications** (啟用 SNS 通知)。
   + 對於 **IAM role** (IAM 角色)，選擇您在 [使用 Amazon SNS 通知監控 Systems Manager 狀態變更](monitoring-sns-notifications.md) 中的任務 3 中建立的 Amazon SNS IAM 角色 Amazon Resource Name (ARN)，以啟動 Amazon SNS。
   + 對於 **SNS topic** (SNS 主題)，輸入要使用的 Amazon SNS 主題 ARN。
   + 對於 **Event type** (事件類型)，選擇您要接收通知的事件。
   + 對於 **Notification type** (通知類型)，選擇是要接收傳送到多個節點 (叫用) 的每個命令複本的通知，還是接收命令摘要的通知。

1. 在 **Parameters** (參數) 區段，根據您選擇的命令文件輸入所需的參數。

1. 選擇 **Register run command task** (註冊執行命令任務)。

1. 在下一次執行維護時段後，請檢查您的電子郵件是否有來自 Amazon SNS 的訊息並開啟該電子郵件訊息。Amazon SNS 可能需要幾分鐘的時間來傳送該電子郵件訊息。

## 向維護時段註冊Run Command任務以傳回通知 (CLI)
<a name="monitoring-sns-mw-register-cli"></a>

使用下列程序，來註冊已設定為使用 AWS CLI向維護時段傳回狀態通知的 Run Command 任務。

**向會傳回通知的維護時段註冊 Run Command 任務 (CLI)**
**注意**  
為了更有效地管理任務選項，這個程序會將命令選項 `--cli-input-json` 與在 JSON 檔案中存放的選項值搭配使用。

1. 在本機電腦上，建立名為 `RunCommandTask.json` 的檔案。

1. 將以下內容貼到 檔案。

   ```
   {
       "Name": "{{Name}}",
       "Description": "{{Description}}",
       "WindowId": "{{mw-0c50858d01EXAMPLE}}",
       "ServiceRoleArn": "arn:aws:iam::{{account-id}}:role/{{MaintenanceWindowIAMRole}}",
       "MaxConcurrency": "{{1}}",
       "MaxErrors": "{{1}}",
       "Priority": {{3}},
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "{{e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE}}"
               ]
           }
       ],
       "TaskType": "RUN_COMMAND",
       "TaskArn": "{{CommandDocumentName}}",
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "{{Comment}}",
               "TimeoutSeconds": {{3600}},
               "NotificationConfig": {
                   "NotificationArn": "arn:aws:sns:{{region}}:{{account-id}}:{{SNSTopicName}}",
                   "NotificationEvents": [
                       "{{All}}"
                   ],
                   "NotificationType": "{{Command}}"
               },
               "ServiceRoleArn": "arn:aws:iam::{{account-id}}:role/{{SNSIAMRole}}"
           }
       }
   }
   ```

1. 將範例值取代為您自有資源的相關資訊。

   如果您想要使用在這個範例中省略的選項，也可以將其恢復。例如，您可以將命令輸出儲存到 S3 儲存貯體。

   如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)。

1. 儲存檔案。

1. 在檔案儲存所在之本機電腦上的目錄中，執行下列命令。

   ```
   aws ssm register-task-with-maintenance-window --cli-input-json file://RunCommandTask.json
   ```
**重要**  
請確認在檔案名稱之前包含 `file://`。這是此命令必要項目。

   如果成功，此命令會傳回類似如下的資訊。

   ```
   {
       "WindowTaskId": "j2l8d5b5c-mw66-tk4d-r3g9-1d4d1EXAMPLE"
   }
   ```

1. 在下一次執行維護時段後，請檢查您的電子郵件是否有來自 Amazon SNS 的訊息並開啟該電子郵件訊息。Amazon SNS 可能需要幾分鐘的時間來傳送該電子郵件訊息。

如需透過命令列向維護時段註冊任務的詳細資訊，請參閱[向維護時段註冊任務](mw-cli-tutorial-tasks.md)。