Utilización de pseudoparámetros en el registro de las tareas del periodo de mantenimiento - AWS Systems Manager

Utilización de pseudoparámetros en el registro de las tareas del periodo de mantenimiento

Cuando se registra una tarea en Maintenance Windows, una capacidad de AWS Systems Manager, puede especificar los parámetros únicos para cada uno de los cuatro tipos. (En los comandos de la CLI, estas se ofrecen al utilizar la opción --task-invocation-parameters).

También puede hacer referencia a determinados valores mediante la sintaxis de pseudoparámetros, como {{RESOURCE_ID}}, {{TARGET_TYPE}} y {{WINDOW_TARGET_ID}}. Al ejecutarse la tarea del periodo de mantenimiento, esta pasa los valores correctos en lugar de los marcadores de posición del pseudoparámetro. Más adelante, en la sección Pseudoparámetros admitidos, se ofrece una lista completa de los pseudoparámetros que se pueden utilizar.

importante

Para el tipo de destino RESOURCE_GROUP, en función del formato de ID necesario para la tarea, puede elegir entre usar {{TARGET_ID}} y {{RESOURCE_ID}} para hacer referencia al recurso cuando se ejecute la tarea. {{TARGET_ID}} devuelve el ARN completo del recurso. {{RESOURCE_ID}} devuelve solo un ID o nombre más corto del recurso, como se muestra en estos ejemplos.

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

  • Formato de {{RESOURCE_ID}}: i-02573cafcfEXAMPLE

Para el tipo de destino INSTANCE, los parámetros {{RESOURCE_ID}} y {{TARGET_ID}} solo generan el ID de instancia. Para obtener más información, consulte Pseudoparámetros admitidos.

{{TARGET_ID}} y {{RESOURCE_ID}} se pueden utilizar para pasar los ID de los recursos de AWS solo a tareas de Automation, Lambda y Step Functions. Estos dos pseudoparámetros no se pueden utilizar con tareas de Run Command.

Ejemplos de pseudoparámetros

Suponga que la carga para una tarea de AWS Lambda necesita referenciar una instancia por su ID.

Si utiliza un destino de periodo de mantenimiento INSTANCE o RESOURCE_GROUP, esto se puede lograr con el pseudoparámetro {{RESOURCE_ID}}. Por ejemplo:

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

Si su tarea de Lambda está diseñada para ejecutarse en otro tipo de destino compatible además de las instancias Amazon Elastic Compute Cloud (Amazon EC2), como una tabla de Amazon DynamoDB, se puede utilizar la misma sintaxis y {{RESOURCE_ID}} solo genera el nombre de la tabla. Sin embargo, si necesita el ARN completo de la tabla, utilice {{TARGET_ID}}, como se muestra en el siguiente ejemplo.

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

La misma sintaxis funciona para la definición de destinos de instancias u otros tipos de recursos. Cuando se han agregado varios tipos de recursos a un grupo de recursos, la tarea se ejecuta en cada uno de los recursos correspondientes.

importante

No todos los tipos de recursos que se pueden incluir en un grupo de recursos generan un valor para el parámetro {{RESOURCE_ID}}. Para obtener una lista de los tipos de recursos admitidos, consulte Pseudoparámetros admitidos.

Otro ejemplo es que, para ejecutar una tarea de Automation que detenga las instancias EC2, deberá especificar el documento de Systems Manager (documento de SSM) AWS-StopEC2Instance como el valor de TaskArn y utilizar el pseudoparámetro {{RESOURCE_ID}}:

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

Para ejecutar una tarea de Automation que copie una instantánea de un volumen de Amazon Elastic Block Store (Amazon EBS), deberá especificar el documento de SSM AWS-CopySnapshot como el valor de TaskArn y utilizar el pseudoparámetro {{RESOURCE_ID}}.

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

Pseudoparámetros admitidos

En la siguiente lista se describen los pseudoparámetros que puede especificar mediante la sintaxis {{PSEUDO_PARAMETER}} en la opción --task-invocation-parameters.

  • WINDOW_ID: el ID del período de mantenimiento de destino.

  • WINDOW_TASK_ID: el ID de la tarea del periodo que se está ejecutando.

  • WINDOW_TARGET_ID: el ID del destino de la ventana que incluye el destino (ID de destino).

  • WINDOW_EXECUTION_ID: el ID de ejecución de la ventana actual.

  • TASK_EXECUTION_ID: el ID de la ejecución de tarea actual.

  • INVOCATION_ID: el ID de la invocación actual.

  • TARGET_TYPE: el tipo de destino. Los tipos admitidos son RESOURCE_GROUP e INSTANCE.

  • TARGET_ID:

    Si el tipo de destino especificado es INSTANCE, el pseudoparámetro TARGET_ID se reemplaza por el ID de la instancia. Por ejemplo, i-078a280217EXAMPLE.

    Si el tipo de destino especificado es RESOURCE_GROUP, el valor que se referencia para la ejecución de la tarea es el ARN completo del recurso. Por ejemplo: arn:aws:ec2:us-east-1:123456789012:instance/i-078a280217EXAMPLE. La tabla siguiente proporciona valores de TARGET_ID de ejemplo para determinados tipos de recursos de un grupo de recursos.

    nota

    TARGET_ID no es compatible con tareas de Run Command.

    Tipo de recurso TARGET_ID de ejemplo
    AWS::CloudWatch::Alarm arn:aws:cloudwatch:us-east-1:123456789012:alarm:MyCloudWatchAlarmi-078a280217EXAMPLE
    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: el ID abreviado de un tipo de recurso incluido en un grupo de recursos. La tabla siguiente proporciona valores de RESOURCE_ID de ejemplo para determinados tipos de recursos de un grupo de recursos.

    nota

    RESOURCE_ID no es compatible con tareas de Run Command.

    Tipo de recurso RESOURCE_ID de ejemplo
    AWS::CloudWatch::Alarm MyCloudWatchAlarm
    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
    nota

    Si el grupo de recursos de AWS que usted especifica incluye tipos de recursos que no generan un valor de RESOURCE_ID y no aparecen en la tabla anterior, el parámetro RESOURCE_ID no se rellena. Se seguirá produciendo una invocación de ejecución para ese recurso. En estos casos, utilice el pseudoparámetro TARGET_ID en su lugar, que se reemplazará por el ARN completo del recurso.