我想為鎖定多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的 AWS Systems Manager 維護時段註冊 Automation 文件任務。
簡短描述
註冊維護時段 Automation 任務時,您必須提供在任務執行時傳遞給任務的輸入參數值。必要的輸入參數與 Automation 文件內容定義的參數相同。您可以在必要的輸入參數欄位使用虛擬參數值,以便動態參照維護時段鎖定的資源 ID。虛擬參數 (例如 {{RESOURCE_ID}}) 可讓您鎖定多個資源,因此您就無需個別輸入每個資源 ID。
例如,Amazon 提供的 AWS-StopEC2Instance 文件會要求您輸入執行個體 ID 做為參數。若要讓維護視窗鎖定多個執行個體,或當您不知道執行個體 ID 時,可使用虛擬參數。
注意:就 INSTANCE 目標類型而言,{{TARGET_ID}} 和 {{RESOURCE_ID}} 虛擬參數都僅會提供執行個體 ID。然而,就 RESOURCE_GROUP 目標類型而言,{{TARGET_ID}} 和 {{RESOURCE_ID}} 會傳回不同格式的 ID。如需詳細資訊和可用虛擬參數清單,請參閱註冊維護時段任務時使用虛擬參數。
解決方法
您可以使用 Systems Manager 主控台或 AWS Command Line Interface (AWS CLI) 虛擬參數來註冊維護時段 Automation 任務。
使用 Systems Manager 主控台
請完成下列步驟:
- 開啟 Systems Manager console (系統管理員主控台)。
- 在導覽窗格中,選擇 Maintenance Windows (維護時段),然後選取您的維護時段。
- 在 Tasks (任務) 頁面上,選擇 Register tasks (註冊任務),然後選擇 Register Automation task (註冊 Automation 任務)。
- 在 Register Automation task (註冊 Automation 任務) 頁面上,輸入下列資訊:
在 Automation document (Automation 文件) 下,選取您要執行任務的文件。
針對目標,指定您的目標資訊。
針對輸入參數,輸入虛擬參數值。例如,為需要資源 ID 的參數輸入 TARGET_ID 或 RESOURCE_ID。
針對速率控制,指定速率資訊。
針對 IAM 服務角色 ,選取 AWS Identity and Access Management (IAM) 角色。
- 選擇 Register Automation task (註冊 Automation 任務)。
使用 AWS CLI
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
執行 register-task-with-maintenance-window 命令。
下列範例命令會註冊包含 {{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 命令的參數選項