关于伪参数 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

关于伪参数

在维护窗口中注册任务时,Amazon Web Services Systems Manager,使用--task-invocation-parameters选项,指定分别对于四种任务类型唯一的参数。您还可以使用伪参数 语法引用特定值,例如 {{RESOURCE_ID}}{{TARGET_TYPE}}{{WINDOW_TARGET_ID}}。维护时段任务运行时,它传递正确的值而不是伪参数占位符。支持的伪参数中提供了您可以使用的伪参数的完整列表。

重要

对于目标类型 RESOURCE_GROUP,根据任务所需的 ID 格式,您可以在任务运行时选择是使用 {{TARGET_ID}} 还是使用 {{RESOURCE_ID}} 来引用资源。{{TARGET_ID}} 返回资源的完整 ARN。{{RESOURCE_ID}} 仅返回资源的较短名称或 ID,如以下示例所示。

  • {{TARGET_ID}} 格式:arn:aws:ec2:us-east-1:123456789012:instance/i-02573cafcfEXAMPLE

  • {{RESOURCE_ID}} 格式:i-02573cafcfEXAMPLE

对于目标类型 INSTANCE{{TARGET_ID}}{{RESOURCE_ID}} 参数两者仅生成实例 ID。有关更多信息,请参阅 支持的伪参数

{{TARGET_ID}}{{RESOURCE_ID}}可用于传递Amazon资源仅用于 “自动化”、“Lambda” 和 “Step Functions” 任务。这两个伪参数不能与 “运行命令” 任务一起使用。

伪参数示例

假设您的有效载荷Amazon Lambda任务需要通过实例 ID 引用实例。

无论您使用的是 RESOURCE_GROUP 维护时段目标,还是 INSTANCE 维护时段目标,这都可以通过使用 {{RESOURCE_ID}} 伪参数来实现:

"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction", "TaskType": "LAMBDA", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\" }", "Qualifier": "$LATEST" } }

如果您的 Lambda 任务旨在针对 Amazon 弹性计算云 (Amazon EC2) 实例之外的其他受支持的目标类型运行(如 Amazon DynamoDB 表),则可以使用相同的语法,并且{{RESOURCE_ID}}仅生成表的名称。但是,如果您需要表的完整 ARN,请使用 {{TARGET_ID}},如以下示例所示。

"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction", "TaskType": "LAMBDA", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"tableArn\": \"{{TARGET_ID}}\" }", "Qualifier": "$LATEST" } }

相同的语法适用于目标实例或其他资源类型。将多个资源类型添加到资源组时,任务将针对每个适当的资源运行。

重要

并非所有可能包含在资源组中的资源类型都为 {{RESOURCE_ID}} 参数生成值。有关受支持资源类型的列表,请参阅支持的伪参数

另一个例子是,要运行停止您的 EC2 实例的 Automation 任务,您必须指定AWS-StopEC2InstanceSystems Manager 文档(SSM 文档)作为TaskArn值并使用{{RESOURCE_ID}伪参数:

"TaskArn": "AWS-StopEC2Instance", "TaskType": "AUTOMATION" "TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } }

要运行复制 Amazon Elastic Block Store (Amazon EBS) 卷的快照的 Automation 任务,您必须指定AWS-CopySnapshotSSM 文档作为TaskArn值并使用{{RESOURCE_ID}伪参数。

"TaskArn": "AWS-CopySnapshot", "TaskType": "AUTOMATION" "TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "SourceRegion": "us-east-2", "targetType":"RESOURCE_GROUP", "SnapshotId": [ "{{RESOURCE_ID}}" ] } } }

支持的伪参数

以下列表描述了您可在 --task-invocation-parameters 选项中使用 {{PSEUDO_PARAMETER}} 语法指定的伪参数。

  • WINDOW_ID:目标维护时段的 ID。

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

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

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

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

  • INVOCATION_ID:当前调用的 ID。

  • TARGET_TYPE:目标的类型。支持的类型包括 RESOURCE_GROUPINSTANCE

  • TARGET_ID:

    如果您指定的目标类型为 INSTANCE,则 TARGET_ID 伪参数将替换为实例的 ID;例如,i-078a280217EXAMPLE

    如果指定的目标类型为RESOURCE_GROUP,则执行任务时引用的值为资源的完整 ARN;例如:arn:aws:ec2:us-east-1:123456789012:instance/i-078a280217EXAMPLE。 下表提供示例TARGET_ID资源组中特定资源类型的值。

    注意

    TARGET_ID不支持 “运行命令” 任务。

    资源类型 示例 TARGET_ID
    AWS::EC2::Instance arn:aws:ec2:us-east-1:123456789012:instance/i-078a280217EXAMPLE
    AWS::EC2::Image arn:aws:ec2:us-east-1:123456789012:image/ami-02250b3732EXAMPLE
    AWS::EC2::SecurityGroup arn:aws:ec2:us-east-1:123456789012:security-group/sg-cEXAMPLE
    AWS::EC2::Snapshot arn:aws:ec2:us-east-1:123456789012:snapshot/snap-03866bf003EXAMPLE
    AWS::EC2::Volume arn:aws:ec2:us-east-1:123456789012:volume/vol-0912e04d78EXAMPLE
    AWS::DynamoDB::Table arn:aws:dynamodb:us-east-1:123456789012:table/MyTable
    AWS::RDS::DBCluster arn:aws:rds:us-east-2:123456789012:cluster:My-Cluster

    AWS::RDS::DBInstance

    arn:aws:rds:us-east-1:123456789012:db:My-SQL-Instance
    AWS::S3::Bucket arn:aws:s3:::DOC-EXAMPLE-BUCKET

    AWS::SSM::ManagedInstance

    arn:aws:ssm:us-east-1:123456789012:managed-instance/mi-0feadcf2d9EXAMPLE
  • RESOURCE_ID:资源组中包含的资源类型的短 ID。下表提供资源组中特定资源类型的示例 RESOURCE_ID 值。

    注意

    RESOURCE_ID不支持 “运行命令” 任务。

    资源类型 示例 RESOURCE_ID
    AWS::EC2::Instance i-078a280217EXAMPLE
    AWS::EC2::Image ami-02250b3732EXAMPLE
    AWS::EC2::SecurityGroup sg-cEXAMPLE
    AWS::EC2::Snapshot snap-03866bf003EXAMPLE
    AWS::EC2::Volume vol-0912e04d78EXAMPLE
    AWS::DynamoDB::Table MyTable
    AWS::RDS::DBCluster My-Cluster
    AWS::RDS::DBInstance My-SQL-Instance
    AWS::S3::Bucket DOC-EXAMPLE-BUCKET
    AWS::SSM::ManagedInstance mi-0feadcf2d9EXAMPLE
    注意

    如果Amazon资源组包含不会产生RESOURCE_ID值,并且未在上表中列出,则RESOURCE_ID参数。对于该资源仍会发生执行调用。在这些情况下,请改用 TARGET_ID 伪参数,该参数将替换为资源的完整 ARN。