本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列程序說明如何使用 AWS Systems Manager 主控台或 AWS Command Line Interface (AWS CLI) 向維護時段註冊Run Command任務。 Run Command 是 中的工具 AWS Systems Manager。此程序也說明如何將 Run Command 任務設定為傳回狀態通知。
開始之前
如果您尚未建立維護時段或註冊目標,請參閱使用主控台建立和管理維護時段,以了解如何建立維護時段和註冊目標的步驟。
若要接收來自 Amazon Simple Notification Service (Amazon SNS) 服務的通知,您必須將 iam:PassRole
政策連接到已註冊任務中指定的 Maintenance Windows 服務角色。如果您尚未將 iam:PassRole
許可新增至 Maintenance Windows 服務角色,請參閱 任務 5:將 iam:PassRole 政策連接至維護時段角色。
向維護時段註冊Run Command任務以傳回通知 (主控台)
使用下列程序註冊 Run Command 任務,它已設定為使用 Systems Manager 主控台向您的維護時段傳回狀態通知。
向維護時段註冊Run Command任務以傳回通知 (主控台)
在 https://https://console.aws.amazon.com/systems-manager/
開啟 AWS Systems Manager 主控台。 在導覽窗格中,選擇 Maintenance Windows。
-
選取您要為已設定為傳送 Amazon Simple Notification Service (Amazon SNS) 通知的 Run Command 任務進行註冊的維護時段。
-
選擇 Actions (動作),然後選擇 Register Run command task (註冊執行命令任務)。
-
(選用) 在 Name (名稱) 欄位中,輸入任務的名稱。
-
(選用) 在 Description (描述) 欄位中,輸入描述。
-
對於 Command document (命令文件),選擇一個命令文件。
-
對於 Task priority (任務優先順序),請指定此任務的優先順序。零 (
0
) 是最高的優先順序。維護時段中的任務會依優先順序排程。具有相同優先順序的任務會排程平行處理。 -
在 Targets (目標) 區段中,選取已註冊的目標群組或選取未註冊的目標。
對於速率控制:
-
在並行中,指定可同時執行命令的受管節點數目或百分比。
注意
如果透過指定套用至受管節點的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個受管節點為目標,則透過指定百分比限制可以同時執行文件之目標的數量。
-
在 Error threshold (錯誤閾值) 中,指定在特定數目或百分比之節點上的命令失敗之後,停止在其他受管節點上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。
-
-
在 IAM service role (IAM 服務角色) 區域中,選擇具有 SNS 角色
iam:PassRole
許可的 Maintenance Windows 服務角色。注意
將
iam:PassRole
許可新增至 Maintenance Windows 角色,以允許 Systems Manager 將 SNS 角色 傳遞至 Amazon SNS。如果您尚未新增iam:PassRole
許可,請參閱使用 Amazon SNS 通知監控 Systems Manager 狀態變更主題中的任務 5。 (選用) 針對輸出選項,若要將命令輸出儲存至檔案,請選取啟用將輸出寫入 S3 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
注意
授予能力以將資料寫入至 S3 儲存貯體的 S3 許可,會是指派給受管節點之執行個體設定檔的許可,而不是執行此任務之 IAM 使用者的許可。如需詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可或建立混合環境的 IAM 服務角色。此外,如果指定的 S3 儲存貯體位於不同的 中 AWS 帳戶,請確認與受管節點相關聯的執行個體設定檔或 IAM 服務角色具有寫入該儲存貯體的必要許可。
-
在 SNS notifications (SNS 通知) 區段中,執行以下操作:
-
選擇 Enable SNS Notifications (啟用 SNS 通知)。
-
對於 IAM role (IAM 角色),選擇您在 使用 Amazon SNS 通知監控 Systems Manager 狀態變更 中的任務 3 中建立的 Amazon SNS IAM 角色 Amazon Resource Name (ARN),以啟動 Amazon SNS。
-
對於 SNS topic (SNS 主題),輸入要使用的 Amazon SNS 主題 ARN。
-
對於 Event type (事件類型),選擇您要接收通知的事件。
-
對於 Notification type (通知類型),選擇是要接收傳送到多個節點 (叫用) 的每個命令複本的通知,還是接收命令摘要的通知。
-
-
在 Parameters (參數) 區段,根據您選擇的命令文件輸入所需的參數。
-
選擇 Register run command task (註冊執行命令任務)。
-
在下一次執行維護時段後,請檢查您的電子郵件是否有來自 Amazon SNS 的訊息並開啟該電子郵件訊息。Amazon SNS 可能需要幾分鐘的時間來傳送該電子郵件訊息。
向維護時段註冊Run Command任務以傳回通知 (CLI)
使用下列程序,來註冊已設定為使用 AWS CLI向維護時段傳回狀態通知的 Run Command 任務。
向會傳回通知的維護時段註冊 Run Command 任務 (CLI)
注意
為了更有效地管理任務選項,這個程序會將命令選項 --cli-input-json
與在 JSON 檔案中存放的選項值搭配使用。
-
在本機電腦上,建立名為
RunCommandTask.json
的檔案。 -
將以下內容貼到 檔案。
{ "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
" } } } -
將範例值取代為您自有資源的相關資訊。
如果您想要使用在這個範例中省略的選項,也可以將其恢復。例如,您可以將命令輸出儲存到 S3 儲存貯體。
如需詳細資訊,請參閱 AWS CLI 命令參考中的 register-task-with-maintenance-window。
-
儲存檔案。
-
在檔案儲存所在之本機電腦上的目錄中,執行下列命令。
aws ssm register-task-with-maintenance-window --cli-input-json file://RunCommandTask.json
重要
請確認在檔案名稱之前包含
file://
。這是此命令必要項目。如果成功,此命令會傳回類似如下的資訊。
{ "WindowTaskId": "j2l8d5b5c-mw66-tk4d-r3g9-1d4d1EXAMPLE" }
-
在下一次執行維護時段後,請檢查您的電子郵件是否有來自 Amazon SNS 的訊息並開啟該電子郵件訊息。Amazon SNS 可能需要幾分鐘的時間來傳送該電子郵件訊息。
如需透過命令列向維護時段註冊任務的詳細資訊,請參閱向維護時段註冊任務。