Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Systems Manager 维护时段演练

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

创建和配置维护时段

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

使用 AWS CLI 创建和配置维护时段

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

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

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

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

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

    Copy
    aws ssm describe-maintenance-windows

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

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

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

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

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

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

    Copy
    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 标签注册实例。

    Copy
    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. 使用以下命令,显示维护时段的目标。

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

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

    Copy
    { "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. 执行以下命令,为维护时段注册任务。第一个示例中的任务使用 Systems Manager Run Command 借助 AWS-RunShellScript 文档执行 df 命令。您也可以指定使用 Systems Manager Automation、AWS Lambda 和 AWS Step Functions 的任务,如其他示例所示。注册任务时,可以指定以下参数:

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

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

    • window-id:目标维护时段的 ID。

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

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

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

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

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

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

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

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

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

    • WINDOW_ID:目标维护时段的 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。

    Copy
    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

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

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

    您还可以使用维护时段目标 ID 注册任务。维护时段目标 ID 通过之前的命令返回。

    Copy
    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

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

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

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

    重要

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

    Lambda

    Copy
    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

    Copy
    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

    自动化

    Copy
    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

    Copy
    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. 执行以下命令,列出维护时段已注册的所有任务。

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

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

    Copy
    { "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. 执行以下命令,查看特定维护时段的任务执行列表。

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

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

    Copy
    { "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. 执行以下命令,获取有关维护时段任务执行的信息。

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

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

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

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

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

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

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

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

    Copy
    { "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. 执行以下命令,获取执行某个任务时执行的具体任务调用。

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

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

    Copy
    { "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. 如果需要,请执行以下命令以删除您创建的维护时段。

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

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

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

更新维护时段

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

本节中的示例使用以下 Systems Manager 操作来更新维护时段。

更新维护时段

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

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

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

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

    Copy
    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

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

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

    Copy
    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"

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

    Copy
    { "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 任务添加名称和描述。

    Copy
    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"

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

    Copy
    { "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。

    Copy
    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"

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

    Copy
    { "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. 执行以下命令可从维护时段中注销目标。本示例使用 safe 参数确定目标是否被任何任务引用,从而确定注销是否安全。

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

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

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

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

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

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

    Copy
    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}}'}}"

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

    Copy
    { "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 参数。

    Copy
    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

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

    Copy
    { "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" }

列出有关维护时段的信息

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

列出您的 AWS 账户中所有的维护时段

按如下所示执行命令。

Copy
aws ssm describe-maintenance-windows

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

Copy
{ "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" } ] }

列出所有已启用的维护时段

按如下所示执行命令。

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

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

Copy
{ "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" } ] }

列出所有已禁用的维护时段

按如下所示执行命令。

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

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

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

按名称筛选

在本示例中,命令将返回所有名称以“My”开头的维护时段。

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

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

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

显示匹配特定所有者信息值的维护时段的目标

按如下所示执行命令。

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

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

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

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

按如下所示执行命令。

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

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

Copy
{ "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 的所有已注册任务

按如下所示执行命令。

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

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

Copy
{ "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 的所有已注册任务

按如下所示执行命令。

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

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

Copy
{ "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" } ] } ] }

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

按如下所示执行命令。

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

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

Copy
{ "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 } ] }

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

按如下所示执行命令。

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

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

Copy
{ "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 } ] }