AWS Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Systems Manager Maintenance Window演练

使用以下演练,借助 AWS CLI 来创建、配置和更新Maintenance Window。在尝试这些演练之前,必须先配置Maintenance Window角色和权限。有关更多信息,请参阅 控制对 Maintenance Window 的访问权限

创建和配置Maintenance Window

以下演练介绍如何使用 AWS CLI 来创建和配置Maintenance Window、目标和任务。

使用 AWS CLI 创建和配置Maintenance Window

  1. 将 AWS CLI 下载到本地计算机上。

  2. 打开 AWS CLI,然后执行以下命令,以创建从每个星期二下午 4 点开始运行 4 个小时、停止 1 小时且允许无关联目标的Maintenance Window。有关创建 schedule 参数的 cron 表达式的更多信息,请参阅使用 Systems Manager 的 Cron 和 Rate 表达式

    aws ssm create-maintenance-window --name "My-First-Maintenance-Window" --schedule "cron(0 16 ? * TUE *)" --duration 4 --cutoff 1 --allow-unassociated-targets

    系统将返回类似于以下内容的信息。

    { "WindowId":"mw-ab12cd34ef56gh78" }
  3. 执行以下命令,列出您的 AWS 账户中所有的Maintenance Window。

    aws ssm describe-maintenance-windows

    系统将返回类似于以下内容的信息。

    { "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }
  4. 执行以下命令,将实例注册为此Maintenance Window的目标。系统将返回Maintenance Window目标 ID。在后面的步骤中,您将使用此 ID 为此Maintenance Window注册任务。

    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --target "Key=InstanceIds,Values=ID" --owner-information "Single instance" --resource-type "INSTANCE"

    系统将返回类似于以下内容的信息。

    { "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }

    您可以使用以下命令注册多个实例。

    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --targets "Key=InstanceIds,Values=ID 1,ID 2" --owner-information "Two instances in a list" --resource-type "INSTANCE"

    您还可以使用 EC2 标签注册实例。

    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --targets "Key=tag:Environment,Values=Prod" "Key=Role,Values=Web" --owner-information "Production Web Servers" --resource-type "INSTANCE"
  5. 使用以下命令,显示Maintenance Window的目标。

    aws ssm describe-maintenance-window-targets --window-id "mw-ab12cd34ef56gh78"

    系统将返回类似于以下内容的信息。

    { "Targets":[ { "ResourceType":"INSTANCE", "OwnerInformation":"Single instance", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-11aa22bb33cc44dd5" ], "Key":"InstanceIds" } ], "WindowTargetId":"a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Two instances in a list", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9", "i-aa11bb22cc33dd44e " ], "Key":"InstanceIds" } ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Production Web Servers", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "Prod" ], "Key":"tag:Environment" }, { "Values":[ "Web" ], "Key":"tag:Role" } ], "WindowTargetId":"1111aaa-2222-3333-4444-1111aaa " } ] }
  6. 执行以下命令,为Maintenance Window注册任务。第一个示例中的任务使用 Systems Manager Run Command 借助 AWS-RunShellScript 文档执行 df 命令。您也可以指定使用 Systems Manager Automation、AWS Lambda 和 AWS Step Functions 的任务,如其他示例所示。注册任务时,可以指定以下参数:

    • targets:指定 Key=WindowTargetIds,Values=IDs 以指定已注册到Maintenance Window的目标,或指定 Key=InstanceIds,Values=IDs 以将不确定是否已注册到Maintenance Window的各个实例设为目标。

    • task-arn:任务在执行期间使用的资源。对于 RUN_COMMAND 和 AUTOMATION 任务类型,TaskArn 是 SSM 文档名称或 ARN。对于 LAMBDA 任务,TaskArn 是函数名称或 ARN。对于 STEP_FUNCTION 任务,TaskArn 是状态机 ARN。

    • window-id:目标Maintenance Window的 ID。

    • task-type:任务的类型。类型可以是以下项之一:RUN_COMMANDAUTOMATIONLAMBDASTEP_FUNCTION

    • task-invocation-parameters: 必需和可选参数. 下一个列表中介绍了一些常见 task-invocation-parameters 参数。

    • max-concurrency:(可选) 允许同时执行命令的最大实例数。您可以指定一个数字或一个百分比 (如 10 或 10%)。

    • max-errors:(可选) 允许的不会导致命令失败的最大错误数。当命令失败的次数超出 MaxErrors 值一次,系统就会停止向其他目标发送命令。您可以指定一个数字或一个百分比 (如 10 或 10%)。

    • priority:Maintenance Window中的任务的优先级。数字越小,优先级越高 (例如,1 表示最高优先级)。Maintenance Window中的任务按优先级顺序计划。具有相同优先级的任务则并行计划。

    适用于 task-invocation-parameters 的常见参数

    以下列表介绍了使用 task-invocation-parameters 时可以指定的一些常见参数。您可使用 {{ PARAMETER_NAME }} 语法指定这些参数,如本部分中的示例所示。

    • TARGET_ID:目标的 ID。如果目标类型为 INSTANCE (目前唯一支持的类型),则目标 ID 为实例 ID。

    • TARGET_TYPE:目标的类型。目前仅支持 INSTANCE。

    • WINDOW_ID:目标Maintenance Window的 ID。

    • WINDOW_TASK_ID:正在执行的时段任务的 ID。

    • WINDOW_TARGET_ID:包含目标的时段目标的 ID (目标 ID)。

    • LOGGING_S3_BUCKET_NAME:Amazon S3 存储桶名称 (如果是使用 logging-info 参数配置的)。

    • LOGGING_S3_KEY_PREFIX:Amazon S3 密钥前缀 (如果是使用 logging-info 参数配置的)。

    • LOGGING_S3_REGION:Amazon S3 区域 (如果是使用 logging-info 参数配置的)。

    • WINDOW_EXECUTION_ID:当前时段执行的 ID。

    • TASK_EXECUTION_ID:当前任务执行的 ID。

    • INVOCATION_ID:当前调用的 ID。

    aws ssm register-task-with-maintenance-window --window-id mw-ab12cd34ef56gh78 --task-arn "AWS-RunShellScript" --targets "Key=InstanceIds,Values=Instance ID" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --task-type "RUN_COMMAND" --task-invocation-parameters "{\"commands\":{\"Values\":[\"df\"]}}" --max-concurrency 1 --max-errors 1 --priority 10

    系统将返回类似于以下内容的信息。

    { "WindowTaskId":"44444444-5555-6666-7777-88888888" }

    您还可以使用Maintenance Window目标 ID 注册任务。Maintenance Window目标 ID 通过之前的命令返回。

    aws ssm register-task-with-maintenance-window --targets "Key=WindowTargetIds,Values=Window Target ID" --task-arn "AWS-RunShellScript" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --window-id "mw-ab12cd34ef56gh78" --task-type "RUN_COMMAND" --task-invocation-parameters "{\"commands\":{\"Values\":[\"df\"]}}" --max-concurrency 1 --max-errors 1 --priority 10

    系统将返回类似于以下内容的信息。

    { "WindowTaskId":"44444444-5555-6666-7777-88888888" }

    以下是包含其他任务类型的其他示例。

    重要

    Maintenance Window的 IAM 策略要求您使用 SSM 作为 Lambda 函数 (或别名) 名称和 Step Functions 状态机名称的前缀,如下面的前两个示例所示。在继续注册这些类型的任务之前,必须在 AWS Lambda 和 AWS Step Functions 中将它们的名称更新为包含 SSM。

    Lambda

    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn arn:aws:lambda:us-east-1:711106535523:function:SSMTestFunction --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type LAMBDA --task-invocation-parameters "{\"Lambda\":{\"Payload\":\"{\\\"targetId\\\":\\\"{{TARGET_ID}}\\\",\\\"targetType\\\":\\\"{{ TARGET_TYPE }}\\\"}\",\"Qualifier\":\"\$LATEST\",\"ClientContext\":\"ew0KICAiY3VzdG9tIjogew0KICAgICJjbGllbnQiOiAiQVdTQ0xJIg0KICB9DQp9\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Descriptio

    Step Functions

    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn arn:aws:states:us-east-1:711106535523:stateMachine:SSMTestStateMachine --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type STEP_FUNCTIONS --task-invocation-parameters "{\"StepFunctions\":{\"Input\":\"{\\\"instanceId\\\":\\\"{{TARGET_ID}}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description

    自动化

    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn AutomationDocumentName --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type AUTOMATION --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={instanceId='{{TARGET_ID}}'}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description

    Run Command

    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn AWS-RunPowerShellScript --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type RUN_COMMAND --task-invocation-parameters "RunCommand={Comment=SomeComment,DocumentHashType=Sha256,DocumentHash=b9d0966408047ebcafee82de4d42477299306fd37510c6815c19e9848e2bffe8,NotificationConfig={NotificationArn=arn:aws:sns:us-west-2:711106535523:RunCommandTopic,NotificationEvents=[Success,Failed],NotificationType=Invocation},OutputS3BucketName=MyS3Bucket,OutputS3KeyPrefix=RunCommand,ServiceRoleArn=arn:aws:iam::711106535523:role/RunCommand,TimeoutSeconds=30,Parameters={commands=ipconfig}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description
  7. 执行以下命令,列出Maintenance Window已注册的所有任务。

    aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78"

    系统将返回类似于以下内容的信息。

    { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::11111111:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"3333-3333-3333-333333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9" ], "Key":"InstanceIds" } ] }, { "ServiceRoleArn":"arn:aws:iam::2222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"44444-44-44-444444", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "555555-55555-555-5555555" ], "Key":"WindowTargetIds" } ] } ] }
  8. 执行以下命令,查看特定Maintenance Window的任务执行列表。

    aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78"

    系统将返回类似于以下内容的信息。

    { "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"1111-1111-1111-11111", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"2222-2-2-22222222-22", "StartTime":1478231395.677 }, # ... omitting a number of entries in the interest of space... { "Status":"SUCCESS", "WindowExecutionId":"33333-333-333-3333333", "StartTime":1478272795.021 }, { "Status":"SUCCESS", "WindowExecutionId":"4444-44-44-44444444", "StartTime":1478273694.932 } ], "NextToken":111111 ..." }
  9. 执行以下命令,获取有关Maintenance Window任务执行的信息。

    aws ssm get-maintenance-window-execution --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"

    系统将返回类似于以下内容的信息。

    { "Status":"SUCCESS", "TaskIds":[ "333-33-3333-333333" ], "StartTime":1478230495.472, "EndTime":1478230516.505, "WindowExecutionId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }
  10. 执行以下命令,列出Maintenance Window执行过程中执行的任务列表。

    aws ssm describe-maintenance-window-execution-tasks --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"

    系统将返回类似于以下内容的信息。

    { "WindowExecutionTaskIdentities":[ { "Status":"SUCCESS", "EndTime":1478230516.425, "StartTime":1478230495.782, "TaskId":"33333-333-333-3333333" } ] }
  11. 执行以下命令,获取有关任务执行的详情。

    aws ssm get-maintenance-window-execution-task --window-execution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444"

    系统将返回类似于以下内容的信息。

    { "Status":"SUCCESS", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "ServiceRole":"arn:aws:iam::333333333:role/MW-Role", "WindowExecutionId":"555555-555-55-555555", "Priority":0, "StartTime":1478230495.782, "EndTime":1478230516.425, "Type":"RUN_COMMAND", "TaskParameters":[ ], "TaskExecutionId":"4444-4444-4444-444444" }
  12. 执行以下命令,获取执行某个任务时执行的具体任务调用。

    aws ssm describe-maintenance-window-execution-task-invocations --window-execution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444"

    系统将返回类似于以下内容的信息。

    { "WindowExecutionTaskInvocationIdentities":[ { "Status":"SUCCESS", "Parameters":"{\" documentName \" : \" AWS-RunPowerShellScript \" , \" instanceIds \" :[ \" i-1a2b3c4d5e6f7g8h9 \" , \" i-0a 00def7faa94f1dc \" ], \" parameters \" :{ \" commands \" :[ \" ipconfig.exe \" ]}, \" maxConcurrency \" : \" 1 \" , \" maxErrors \" : \" 1 \" }", "ExecutionId":"555555-555-55-555555", "InvocationId":"3333-33333-3333-33333", "StartTime":1478230495.842, "EndTime":1478230516.291 } ] }
  13. 如果需要,请执行以下命令以删除您创建的Maintenance Window。

    aws ssm delete-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9"

    系统将返回类似于以下内容的信息:

    { "WindowId":"mw-1a2b3c4d5e6f7g8h9" }

更新Maintenance Window

本部分介绍如何使用 AWS CLI 更新Maintenance Window。本部分还包含有关更新不同的任务类型 (包括 Systems Manager Run Command、Systems Manager Automation、AWS Lambda 和 AWS Step Functions 任务) 的信息。有关更新Maintenance Window的更多信息,请参阅更新或删除Maintenance Window

本部分中的示例使用以下 Systems Manager 操作来更新Maintenance Window。

更新Maintenance Window

  1. 执行以下命令可将目标更新为包括名称和描述。

    aws ssm update-maintenance-window-target --window-id "mw-12345678910" --window-target-id "a1b2c3d4-e5f6-g7h8i9" --name "NewTargetName" --description "NewTargetName description"

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-12345678910", "WindowTargetId": "a1b2c3d4-e5f6-g7h8i9", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-aabbccddeeff" ] } ], "Name": "NewTargetName", "Description": "NewTargetName description" }
  2. 执行以下命令可使用 replace 选项来删除描述字段和添加更多目标。描述字段被删除,因为更新未包含该字段 (一个 null 值)。

    aws ssm update-maintenance-window-target --window-id "mw-12345678910" --window-target-id "a1b2c3d4-e5f6-g7h8i9" --targets "Key=InstanceIds,Values=i-aabbccddeeff,i-223344556677" --name "NewTargetName" --replace

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-12345678910", "WindowTargetId": "a1b2c3d4-e5f6-g7h8i9", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-aabbccddeeff", "i-223344556677" ] } ], "Name": "NewTargetName" }
  3. 执行以下命令可更新 Run Command 任务。

    aws ssm update-maintenance-window-task --window-id "mw-12345678910" --window-task-id "1111-2222-3333-4444-5555" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c" --task-arn "AWS-RunPowerShellScript" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "RunCommand={Comment=A_Comment,Parameters={commands=ipconfig}}" --priority 1 --max-concurrency 10 --max-errors 4 --name "RC_Name" --description "RC_Name description extra"

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-12345678916", "WindowTaskId": "aaa-bbb-ccc-ddd", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c" ] } ], "TaskArn": "AWS-RunPowerShellScript", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "SomeComment", "Parameters": { "commands": [ "ipconfig -tail" ] } } }, "Priority": 1, "MaxConcurrency": "10", "MaxErrors": "4", "Name": "RC_Name", "Description": "RC_Name description extra" }
  4. 执行以下命令可向 Lambda 任务添加名称和描述。

    aws ssm update-maintenance-window-task --window-id "mw-1234567891" --window-task-id "1a2b3c4d-5e6f-7g8h90" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c,4444-555555-66666-7777" --task-arn "arn:aws:lambda:us-east-1:1313131313:function:SSMTestLambda" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "{\"Lambda\":{\"Payload\":\"{\\\"targetId\\\":\\\"{{TARGET_ID}}\\\",\\\"targetType\\\":\\\"{{ TARGET_TYPE }}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name "TestLambda_Name" --description "TestLambda_Name description"

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-1234567891", "WindowTaskId": "1a2b3c4d-5e6f-7g8h90", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c", "4444-555555-66666-7777d" ] } ], "TaskArn": "arn:aws:lambda:us-east-1:1313131313:function:SSMTestLambda", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "Lambda": { "Payload": "e30=" } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestLambda_Name", "Description": "TestLambda_Name description" }
  5. 执行以下命令可更新 AWS Step Functions 任务以更新 task-invocation-parameters。

    aws ssm update-maintenance-window-task --window-id "mw-1234567891" --window-task-id "1a2b3c4d-5e6f-7g8h9i" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c" --task-arn "arn:aws:states:us-east-1:4242424242:execution:SSMStepFunctionTest" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "{\"StepFunctions\":{\"Input\":\"{\\\"instanceId\\\":\\\"{{ TARGET_ID }}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name "TestStepFunction_Task" --description "TestStepFunction_Task description"

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-1234567891", "WindowTaskId": "1a2b3c4d-5e6f-7g8h9i", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c" ] } ], "TaskArn": "arn:aws:states:us-east-1:4242424242:execution:SSMStepFunctionTest", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "StepFunctions": { "Input": "{\"instanceId\":\"{{ TARGET_ID }}\"}" } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestStepFunction_Task", "Description": "TestStepFunction_Task description" }
  6. 执行以下命令可从Maintenance Window中注销目标。本示例使用 safe 参数确定目标是否被任何任务引用,从而确定注销是否安全。

    aws ssm deregister-target-from-maintenance-window --window-id "mw-1234567891b" --window-target-id "aaaa-bbbb-cccc-dddd" --safe

    系统将返回类似于以下内容的信息。

    An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: This Target cannot be deregistered because it is still referenced in Task: a11b22c33d44e55f66
  7. 执行以下命令可从Maintenance Window中注销目标,即使该目标已被某个任务引用。您可以使用 no-safe 参数强制执行注销操作。

    aws ssm deregister-target-from-maintenance-window --window-id "mw-1234567891b" --window-target-id "aaaa-bbbb-cccc-dddd" --no-safe

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-1234567891b", "WindowTargetId": "aaaa-bbbb-cccc-ddd" }
  8. 执行以下命令可更新 Run Command 任务。本示例使用名为 UpdateLevel 的 Systems Manager Parameter Store 参数,其格式如下:'{{ssm:UpdateLevel}}'

    aws ssm update-maintenance-window-task --window-id "mw-1234567891b" --window-task-id "777-8888-9999-0000" --targets "Key=InstanceIds,Values=i-yyyyzzzzxxx111222" --task-invocation-parameters "RunCommand={Comment=SomeComments,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-1234567891b", "WindowTaskId": "777-8888-9999-0000", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-yyyyzzzzxxx1112223" ] } ], "TaskArn": "AWS-InstallMissingWindowsUpdates", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindows", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "SomeComments", "Parameters": { "UpdateLevel": [ "{{ssm:UpdateLevel}}" ] } } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TracyMWTest_RunCommand2", "Description": "Test_RunCommandandParameterStore description" }
  9. 执行以下命令可更新 Automation 任务以便为 task-invocation-parameters 参数指定 WINDOW_ID 和 WINDOW_TASK_ID 参数。

    aws ssm update-maintenance-window-task --window-id "mw-1234567891b" --window-task-id "777-8888-9999-000" --targets "Key=WindowTargetIds,Values=999-aaa-888-bbb-777 --task-arn "AutoTestDoc" --service-role-arn arn:aws:iam::801422537783:role/MaintenanceWindowsRoleTesting --task-invocation-parameters "Automation={Parameters={instanceId='{{TARGET_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" --priority 0 --max-concurrency 10 --max-errors 5

    系统将返回类似于以下内容的信息。

    { "WindowId": "mw-0a097ccb2abd5775b", "WindowTaskId": "777-8888-9999-0000", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "999-aaa-888-bbb-777" ] } ], "TaskArn": "AutoTestDoc", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindows", "TaskParameters": {}, "TaskInvocationParameters": { "Automation": { "Parameters": { "multi": [ "{{WINDOW_TASK_ID}}" ], "single": [ "{{WINDOW_ID}}" ] } } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestAutomation_Task", "Description": "TestAutomation_Task description" }

列出有关Maintenance Window的信息

本部分包含的命令可帮助您更新Maintenance Window、任务、执行和调用或获取相关信息。

列出您的 AWS 账户中所有的Maintenance Window

按如下所示执行命令。

aws ssm describe-maintenance-windows

系统将返回类似于以下内容的信息。

{ "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" }, { "Duration":8, "Cutoff":2, "WindowId":"mw-123abc456def789", "Enabled":false, "Name":"Every-Day" } ] }

列出所有已启用的Maintenance Window

按如下所示执行命令。

aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=true"

系统将返回类似于以下内容的信息。

{ "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }

列出所有已禁用的Maintenance Window

按如下所示执行命令。

aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=false"

系统将返回类似于以下内容的信息。

{ "WindowIdentities":[ { "Duration":8, "Cutoff":2, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":false, "Name":"Every-Day" } ] }

按名称筛选

在本示例中,命令将返回所有名称以“My”开头的Maintenance Window。

aws ssm describe-maintenance-windows --filters "Key=Name,Values=My"

系统将返回类似于以下内容的信息。

{ "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }

显示匹配特定所有者信息值的Maintenance Window的目标

按如下所示执行命令。

aws ssm describe-maintenance-window-targets --window-id "mw-ab12cd34ef56gh78" --filters "Key=OwnerInformation,Values=Single instance"

系统将返回类似于以下内容的信息。

{ "Targets":[ { "TargetType":"INSTANCE", "TagFilters":[ ], "TargetIds":[ "i-1a2b3c4d5e6f7g8h9" ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2", "OwnerInformation":"Single instance" } ] }

显示将调用 AWS-RunPowerShellScript Run Command 的所有已注册任务

按如下所示执行命令。

aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"

系统将返回类似于以下内容的信息。

{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::444444444444:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] }, { "ServiceRoleArn":"arn:aws:iam::333333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"33333-33333-333-33333", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"44444-444-4444-444444", "TaskTargetType":"WINDOW_TARGET" } ] } ] }

显示优先级为 3 的所有已注册任务

按如下所示执行命令。

aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=3"

系统将返回类似于以下内容的信息。

{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"333333-333-33333-33333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] } ] }

显示优先级为 1 且使用 Run Command 的所有已注册任务

按如下所示执行命令。

aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"

系统将返回类似于以下内容的信息。

{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"66666-555-66-555-6666", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"777-77-777-7777777", "TaskTargetType":"WINDOW_TARGET" } ] } ] }

列出在某个日期之前执行的所有任务

按如下所示执行命令。

aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78" --filters "Key=ExecutedBefore,Values=2016-11-04T05:00:00Z"

系统将返回类似于以下内容的信息。

{ "WindowExecutions":[ { "Status":"SUCCESS", "EndTime":1478229594.666, "WindowExecutionId":"", "StartTime":1478229594.666 }, { "Status":"SUCCESS", "WindowExecutionId":"06dc5f8a-9ef0-4ae9-a466-ada2d4ce2d22", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"57ad6419-023e-44b0-a831-6687334390b2", "StartTime":1478231395.677 }, { "Status":"SUCCESS", "WindowExecutionId":"ed1372b7-866b-4d64-bc2a-bbfd5195f4ae", "StartTime":1478232295.529 }, { "Status":"SUCCESS", "WindowExecutionId":"154eb2fa-6390-4cb7-8c9e-55686b88c7b3", "StartTime":1478233195.687 }, { "Status":"SUCCESS", "WindowExecutionId":"1c4de752-eff6-4778-b477-1681c6c03cf1", "StartTime":1478234095.553 }, { "Status":"SUCCESS", "WindowExecutionId":"56062f75-e4d8-483f-b5c2-906d613409a4", "StartTime":1478234995.12 } ] }

列出在某个日期之后执行的所有任务

按如下所示执行命令。

aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78" --filters "Key=ExecutedAfter,Values=2016-11-04T17:00:00Z"

系统将返回类似于以下内容的信息。

{ "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"33333-4444-444-5555555", "StartTime":1478279095.042 }, { "Status":"SUCCESS", "WindowExecutionId":"55555-6666-6666-777777", "StartTime":1478279994.958 }, { "Status":"SUCCESS", "WindowExecutionId":"8888-888-888-888888", "StartTime":1478280895.149 } ] }