如何在为 Systems Manager 维护时段注册自动化任务时添加参数?

1 分钟阅读
0

我想为以多个 Amazon Elastic Compute Cloud (Amazon EC2) 实例为目标的 AWS Systems Manager 维护时段注册一个自动化文档任务。

简短描述

注册维护时段自动化任务时,必须提供在任务运行时传递给任务的输入参数值。所需的输入参数与自动化文档内容中定义的参数相同。您可以在所需的输入参数字段中使用伪参数值来动态引用作为维护时段目标的资源 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 命令行界面 (AWS CLI) 使用伪参数注册维护时段自动化任务。

使用 Systems Manager 控制台

完成以下步骤:

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择 Maintenance Windows(维护时段),然后选择您的维护时段。
  3. Tasks(任务)页面上,选择 Register tasks(注册任务),然后选择 Register Automation task(注册自动化任务)。
  4. Register Automation task(注册自动化任务)页面上,输入以下信息:
    Automation document(自动化文档)下,选择任务要运行的文档。
    对于 Targets(目标),指定您的目标信息。
    对于 Input parameters(输入参数),输入一个伪参数值。例如,为需要资源 ID 的参数输入 TARGET_IDRESOURCE_ID
    对于 Rate control(速率控制),指定您的速率信息。
    对于 IAM service role(IAM 服务角色),选择一个 AWS Identity and Access Management (IAM) 角色。
  5. 选择 Register Automation task(注册自动化任务)。

使用 AWS CLI

**注意:**如果您在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

运行 register-task-with-maintenance-window 命令。

以下示例命令将注册一个包含 {{RESOURCE_ID}} 参数的自动化任务:

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 命令的参数选项

AWS 官方
AWS 官方已更新 5 个月前