使用維護時段傳送命令以傳回狀態通知 - AWS Systems Manager

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

使用維護時段傳送命令以傳回狀態通知

下列程序說明如何註冊 Run Command 使用 AWS Systems Manager 主控台或 AWS Command Line Interface () 執行具有維護時段的任務AWS CLI。Run Command 是 的功能 AWS Systems Manager。這些程序也說明如何設定 Run Command 任務以傳回狀態通知。

開始之前

如果您尚未建立維護時段或註冊目標,請參閱使用主控台建立和管理維護時段,以了解如何建立維護時段和註冊目標的步驟。

若要接收來自 Amazon Simple Notification Service (AmazonSNS) 服務的通知,請將iam:PassRole政策連接至 Maintenance Windows 已註冊任務中指定的服務角色。如果您尚未將iam:PassRole許可新增至您的 Maintenance Windows 服務角色,請參閱 任務 5:將 iam:PassRole 政策連接至您的維護時段角色

註冊 Run Command 任務至傳回通知的維護時段 (主控台)

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

若要註冊 Run Command 任務,您的維護時段會傳回通知 (主控台)
  1. 在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Maintenance Windows.

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

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

  5. (選用) 在 Name (名稱) 欄位中,輸入任務的名稱。

  6. (選用) 在 Description (描述) 欄位中,輸入描述。

  7. 對於 Command document (命令文件),選擇一個命令文件。

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

  9. Targets (目標) 區段中,選取已註冊的目標群組或選取未註冊的目標。

  10. 對於 Rate control (速率控制):

    • Concurrency (並行) 中,指定可同時執行命令的受管節點數目或百分比。

      注意

      如果透過指定套用至受管節點的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個受管節點為目標,則透過指定百分比限制可以同時執行文件之目標的數量。

    • Error threshold (錯誤閾值) 中,指定在特定數目或百分比之節點上的命令失敗之後,停止在其他受管節點上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。

  11. IAM服務角色區域中,選擇 Maintenance Windows 具有角色iam:PassRole許可的服務SNS角色。

    注意

    iam:PassRole許可新增至 Maintenance Windows 角色,以允許 Systems Manager 將SNS角色傳遞至 Amazon SNS。如果您尚未新增 iam:PassRole 許可,請參閱使用 Amazon SNS 通知監控 Systems Manager 狀態變更主題中的任務 5。

  12. (選用) 針對 Output options (輸出選項),若要將命令輸出儲存至檔案,請選取 Enable writing output to S3 (啟用將輸出寫入 S3) 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。

    注意

    授予將資料寫入 S3 儲存貯體之能力的 S3 許可是指派給受管節點的執行個體設定檔,而不是執行此任務IAM的使用者。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可建立混合環境IAM的服務角色。此外,如果指定的 S3 儲存貯體位於不同的 中 AWS 帳戶,請確認與受管節點相關聯的執行個體設定檔IAM或服務角色具有寫入該儲存貯體的必要許可。

  13. SNS通知區段中,執行下列動作:

    • 選擇啟用SNS通知

    • 針對IAM角色 ,選擇您在 中的任務 3 中建立的 Amazon SNSIAM角色 Amazon Resource Name (ARN),使用 Amazon SNS 通知監控 Systems Manager 狀態變更以啟動 Amazon SNS。

    • 針對SNS主題 ,輸入ARN要使用的 Amazon SNS主題。

    • 對於 Event type (事件類型),選擇您要接收通知的事件。

    • 對於 Notification type (通知類型),選擇是要接收傳送到多個節點 (叫用) 的每個命令複本的通知,還是接收命令摘要的通知。

  14. Parameters (參數) 區段,根據您選擇的命令文件輸入所需的參數。

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

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

註冊 Run Command 任務至傳回通知的維護時段 (CLI)

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

若要註冊 Run Command 任務,其中維護時段會傳回通知 (CLI)
注意

為了更好地管理您的任務選項,此程序使用命令選項 --cli-input-json,並將選項值存放在JSON檔案中。

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

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

    { "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" } } }
  3. 將範例值取代為您自有資源的相關資訊。

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

    如需詳細資訊,請參閱 register-task-with-maintenance-windowAWS CLI 命令參考 中。

  4. 儲存檔案。

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

    aws ssm register-task-with-maintenance-window --cli-input-json file://RunCommandTask.json
    重要

    請確認在檔案名稱之前包含 file://。這是此命令必要項目。

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

    {
        "WindowTaskId": "j2l8d5b5c-mw66-tk4d-r3g9-1d4d1EXAMPLE"
    }
                        
  6. 下次執行維護時段後,請檢查您的電子郵件是否有來自 Amazon 的訊息,SNS並開啟電子郵件訊息。Amazon SNS 可能需要幾分鐘的時間來傳送電子郵件訊息。

如需透過命令列向維護時段註冊任務的詳細資訊,請參閱向維護時段註冊任務