Ejemplos: registrar tareas en un periodo de mantenimiento
Puede registrar una tarea en Run Command, una capacidad de AWS Systems Manager, con un periodo de mantenimiento mediante la AWS Command Line Interface (AWS CLI), como se muestra en Registro de tareas con el periodo de mantenimiento. También puede registrar tareas para flujos de trabajo de Systems Manager Automation, funciones de AWS Lambda y tareas de AWS Step Functions, como se muestra más adelante en este tema.
nota
Especifique uno o más destinos para las tareas de tipo Run Command del periodo de mantenimiento. Según la tarea, los destinos son opcionales para otros tipos de tarea de periodo de mantenimiento (Automation, AWS Lambda y AWS Step Functions). Para obtener más información acerca de la ejecución de tareas que no especifican destinos, consulte Registro de tareas del periodo de mantenimiento sin destinos.
En este tema, se proporcionan ejemplos de cómo utilizar el comando register-task-with-maintenance-window
de la AWS Command Line Interface (AWS CLI) para registrar cada uno de los cuatro tipos de tareas compatibles en un periodo de mantenimiento. Los ejemplos solo tienen fines de demostración, pero puede modificarlos para crear los comandos de registro de las tareas en uso.
Uso de la opción --cli-input-json
Para administrar mejor las opciones de la tarea, puede utilizar la opción de comando --cli-input-json
, con valores de opción a los que se hace referencia en un archivo JSON.
Para utilizar el contenido del archivo JSON de ejemplo que proporcionamos en los siguientes ejemplos, haga lo siguiente en su equipo local:
-
Cree un archivo con un nombre como, por ejemplo,
MyRunCommandTask.json
,MyAutomationTask.json
o cualquier otro nombre de su preferencia. -
Copie el contenido de la muestra de JSON en el archivo.
-
Modifique el contenido del archivo para el registro de la tarea y, a continuación, guarde el archivo.
-
En el mismo directorio en el que almacenó el archivo, ejecute el comando siguiente. Sustituya el nombre de archivo por
MiArchivo.json
.
Pseudoparámetros en las tareas de periodos de mantenimiento
En algunos ejemplos, utilizamos los pseudoparámetros como método para transferir información del ID a sus tareas. Por ejemplo, {{TARGET_ID}}
y {{RESOURCE_ID}}
se pueden utilizar para pasar los ID de los recursos de AWS a tareas de Automation, Lambda y Step Functions. Para obtener más información sobre los pseudoparámetros en el contenido --task-invocation-parameters
, consulte Utilización de pseudoparámetros en el registro de las tareas del periodo de mantenimiento.
- Más información
-
-
Opciones de parámetros para el comando register-task-with-maintenance-windows.
-
register-task-with-maintenance-window en la Referencia de comandos de la AWS CLI
-
RegisterTaskWithMaintenanceWindow en la Referencia de la API de AWS Systems Manager
-
Ejemplos de registro de tareas
En las secciones siguientes se proporciona un comando de la AWS CLI de ejemplo para registrar un tipo de tarea admitido y una muestra de JSON que se puede utilizar con la opción --cli-input-json
.
Los siguientes ejemplos muestran cómo registrar tareas de Systems Manager Run Command con un periodo de mantenimiento mediante la AWS CLI.
Contenido JSON para usar con la opción de archivo --cli-input-json
:
{ "TaskType": "RUN_COMMAND", "WindowId": "mw-0c50858d01EXAMPLE", "Description": "My Run Command task to update SSM Agent on an instance", "MaxConcurrency": "1", "MaxErrors": "1", "Name": "My-Run-Command-Task", "Priority": 10, "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AWS-UpdateSSMAgent", "TaskInvocationParameters": { "RunCommand": { "Comment": "A TaskInvocationParameters test comment", "NotificationConfig": { "NotificationArn": "arn:aws:sns:
region
:123456789012:my-sns-topic-name", "NotificationEvents": [ "All" ], "NotificationType": "Invocation" }, "OutputS3BucketName": "amzn-s3-demo-bucket", "OutputS3KeyPrefix": "S3-PREFIX
", "TimeoutSeconds": 3600 } } }
Los siguientes ejemplos muestran cómo registrar tareas de Systems Manager Automation con un periodo de mantenimiento mediante la AWS CLI:
Comando de la AWS CLI:
Contenido JSON para usar con la opción de archivo --cli-input-json
:
{ "WindowId": "mw-0c50858d01EXAMPLE", "TaskArn": "AWS-PatchInstanceWithRollback", "TaskType": "AUTOMATION","TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } } }
Los siguientes ejemplos muestran cómo registrar las tareas de la función de Lambda con un periodo de mantenimiento mediante la AWS CLI.
En estos ejemplos, el usuario que creó la función de Lambda la nombró SSMrestart-my-instances
y creó dos parámetros denominados instanceId
y targetType
.
importante
La política de IAM para Maintenance Windows requiere que se agregue el prefijo SSM
a los nombres de la función (o alias) de Lambda. Antes de continuar con el registro de este tipo de tareas, actualice el nombre en AWS Lambda para incluir SSM
. Por ejemplo, si el nombre de la función de Lambda es MyLambdaFunction
, cámbielo a SSMMyLambdaFunction
.
Comando de la AWS CLI:
Contenido JSON para usar con la opción de archivo --cli-input-json
:
{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_RestartMyInstances", "TaskType": "LAMBDA", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }", "Qualifier": "$LATEST" } }, "Name": "My-Lambda-Task", "Description": "A description for my LAMBDA task", "Priority": 5 }
Los siguientes ejemplos muestran cómo registrar tareas de máquina de estado de Step Functions con un periodo de mantenimiento mediante la AWS CLI.
nota
Las tareas de los periodos de mantenimiento solo admiten los flujos de trabajo de máquinas de estado estándar de Step Functions. No son compatibles con los flujos de trabajo de máquinas de estado rápidas. Para obtener información sobre los tipos de flujos de trabajo de máquinas de estado, consulte Flujos de trabajo estándar en comparación con flujos de trabajo rápidos en la Guía para desarrolladores de AWS Step Functions.
En estos ejemplos, el usuario que creó la máquina de estado de Step Functions, creó una máquina de estado llamada SSMMyStateMachine
con un parámetro denominado instanceId
.
importante
La política de AWS Identity and Access Management (IAM) para Maintenance Windows requiere que se agregue el prefijo SSM
a los nombres de máquina de estado de Step Functions. Antes de proceder al registro de este tipo de tarea, debe actualizar su nombre en AWS Step Functions para que incluya SSM
. Por ejemplo, si el nombre de la máquina de estado es MyStateMachine
, cámbielo a SSMMyStateMachine
.
Comando de la AWS CLI:
Contenido JSON para usar con la opción de archivo --cli-input-json
:
{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_MyStateMachine", "TaskType": "STEP_FUNCTIONS", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "StepFunctions": { "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }", "Name": "{{INVOCATION_ID}}" } }, "Name": "My-Step-Functions-Task", "Description": "A description for my Step Functions task", "Priority": 5 }