我想為鎖定多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的 AWS Systems Manager 維護時段註冊 Automation 文件任務。我該如何操作?
簡短描述
註冊維護時段 Automation 任務時,您必須提供在任務執行時傳遞給任務的輸入參數值。必要的輸入參數與 Automation 文件內容定義的參數相同。您可以在必要的輸入參數欄位使用虛擬參數值,以便動態參照維護時段鎖定的資源 ID。虛擬參數 (如 {{RESOURCE_ID}}) 可讓您鎖定多個資源,而無需個別輸入每個資源 ID。
例如,Amazon 提供的 AWS-StopEC2Instance 文件會要求您輸入執行個體 ID 做為參數。如果您想要維護時段鎖定多個執行個體,或您不知道執行個體 ID,則可以使用虛擬參數。
注意: 對於目標類型執行個體,{{TARGET_ID}} 和 {{RESOURCE_ID}} 虛擬參數都只會產生執行個體 ID。然而,就 RESOURCE_GROUP 而言,{{TARGET_ID}} 和 {{RESOURCE_ID}} 會傳回不同的格式的 ID。如需詳細資訊和可用的虛擬參數清單,請參閱關於虛擬參數。
您可以使用 Systems Manager 主控台或 AWS Command Line Interface (AWS CLI) 虛擬參數來註冊維護時段 Automation 任務。
解決方法
使用主控台
若要使用動態虛擬參數註冊維護時段 Automation 任務,請依照下列步驟執行:
- 開啟 Systems Manager 主控台,然後從導覽窗格選擇維護時段。
- 選取您的維護時段,然後選擇檢視詳細資訊。
- 從任務標籤依序選擇註冊任務、註冊 Automation 任務。
- 針對 Automation 文件,選取您要執行任務的文件。
- 指定您的目標、速率控制和 IAM 服務角色。
- 對於輸入參數,請為需要資源 ID 的參數輸入虛擬參數值 (例如 {{TARGET_ID}} 或 {{RESOURCE_ID}})。
- 選擇註冊 Automation 任務。
使用 AWS CLI
注意: 如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
以下範例使用 AWS CLI 註冊包括 {{RESOURCE_ID}} 參數的Automation 任務:
aws ssm register-task-with-maintenance-window --window-id mw-1234567890EXAMPLE --targets Key=WindowTargetIds,Values=6c226ea3-463a-4533-8a2d-EXAMPLE --task-arn AWS-StopEC2Instance --task-type AUTOMATION --name MyMaintenanceWindowTask --max-concurrency 10 --max-errors 5 --task-invocation-parameters={\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{RESOURCE_ID}}\"]}}} --service-role-arn YOUR_SERVICE_ROLE_ARN
維護時段任務執行時,每個目標的對應資源 ID 會傳遞至系統。在上述範例,InstanceId 參數會針對目標群組的每個目標接收對應的執行個體 ID。
相關資訊
支援的虛擬參數
關於 register-task-with-maintenance-windows 選項