Solución de problemas de periodos de mantenimiento - AWS Systems Manager

Solución de problemas de periodos de mantenimiento

Utilice la siguiente información como ayuda para solucionar problemas con periodos de mantenimiento.

Error de edición de tarea: en la página de edición de una tarea de periodo de mantenimiento, la lista de roles de IAM devuelve un mensaje de error: “We couldn't find the IAM maintenance window role specified for this task. It might have been deleted, or it might not have been created yet" (No se encontró el rol de IAM Maintenance Window especificada para esta tarea. Puede que se haya eliminado o que todavía no se haya creado).

Problema 1: el rol de periodo de mantenimiento de AWS Identity and Access Management (IAM) que especificó originalmente se eliminó después de que se creó la tarea.

Posible solución: 1) Seleccione un rol de periodo de mantenimiento de IAM diferente, si ya existe uno en su cuenta, o cree uno nuevo y selecciónelo para la tarea.

Problema 2: si la tarea se creó mediante la AWS Command Line Interface (AWS CLI), AWS Tools for Windows PowerShell o un AWS SDK, es posible que se haya especificado un nombre de rol de periodo de mantenimiento de IAM inexistente. Por ejemplo, es posible se haya eliminado el rol de periodo de mantenimiento de IAM antes de crear la tarea, o que el nombre del rol se haya escrito incorrectamente, como myrole en lugar de my-role.

Posible solución: Seleccione el nombre correcto del rol de periodo de mantenimiento de IAM que desea utilizar o cree uno nuevo con el fin de especificarlo para la tarea.

No todos los destinos del periodo de mantenimiento se actualizan

Problema: observa que las tareas del periodo de mantenimiento no se ejecutaron en todos los recursos indicados como destino por el periodo de mantenimiento. Por ejemplo, en los resultados de la ejecución del periodo de mantenimiento, la tarea de ese recurso se marca como error o tiempo de espera agotado.

Solución: la conectividad y la disponibilidad son las razones más comunes por las que una tarea del periodo de mantenimiento no se ejecuta en un recurso de destino. Por ejemplo:

  • Systems Manager perdió la conexión con el recurso antes de la operación del periodo de mantenimiento o durante ella.

  • El recurso se quedó sin conexión o se detuvo durante la operación del periodo de mantenimiento.

Puede esperar a la hora del próximo periodo de mantenimiento programado para ejecutar las tareas en los recursos. Puede ejecutar de forma manual las tareas del periodo de mantenimiento en los recursos que no estaban disponibles o que estaban sin conexión.

La tarea falla con el estado de invocación de tarea: “El rol proporcionado no contiene los permisos SSM correctos”.

Problema: especificó un rol de servicio de periodo de mantenimiento para una tarea, pero esta no se ejecuta de forma correcta y el estado de invocación de la tarea indica que “el rol proporcionado no contiene los permisos SSM correctos”.

  • Solución: en Tarea 1: cree una política personalizada para el rol de servicio de periodo de mantenimiento mediante la consola, ofrecemos una política básica que puede adjuntar al rol de servicio de periodo de mantenimiento personalizado. La política incluye los permisos necesarios para muchos escenarios de tareas. Sin embargo, debido a la gran variedad de tareas que puede ejecutar, es posible que deba proporcionar permisos adicionales en la política para el rol de periodo de mantenimiento.

    Por ejemplo, algunas acciones de Automation trabajan con pilas de AWS CloudFormation. Por lo tanto, es posible que tenga que agregar permisos adicionales de cloudformation:CreateStack, cloudformation:DescribeStacks, y cloudformation:DeleteStack a la política para el rol de servicio del periodo de mantenimiento.

    Otro ejemplo es el manual de procedimientos de Automation AWS-CopySnapshot, que requiere permisos para crear una instantánea de Amazon Elastic Block Store (Amazon EBS). Por lo tanto, es posible que tenga que agregar el permiso ec2:CreateSnapshot.

    Para obtener información sobre los permisos de rol que necesita un manual de procedimientos de automatización administrada de AWS, consulte las descripciones de manuales de procedimientos en la referencia de manuales de procedimientos de automatización de AWS Systems Manager.

    Para obtener más información acerca de los permisos de rol que necesita un documento de SSM administrado de AWS, revise el contenido del mismo en la sección Documentos de la consola de Systems Manager.

    Para obtener información sobre los permisos de rol necesarios para las tareas de Step Functions, de Lambda y los manuales de procedimientos de automatización personalizados y los documentos de SSM, verifique los requisitos de permisos con el autor de esos recursos.

La tarea falla con el mensaje de error: “Step fails when it is validating and resolving the step inputs” (El paso falla cuando está validando y resolviendo las entradas del paso).

Problema: un manual de procedimientos de Automation o un documento de Command de Systems Manager que se utiliza en una tarea requiere que especifique entradas como InstanceId o SnapshotId, pero no se proporciona un valor o no se suministra correctamente.

  • Solución 1: si la tarea tiene como destino un recurso único, como un nodo único o una instantánea única, ingrese su ID en los parámetros de entrada de la tarea.

  • Solución 2: si la tarea tiene como destino varios recursos, como la creación de imágenes a partir de varios nodos cuando utiliza el manual de procedimientos AWS-CreateImage, puede utilizar uno de los pseudoparámetros admitidos para tareas del periodo de mantenimiento en los parámetros de entrada para representar los ID de nodo en el comando.

    Los siguientes comandos registran una tarea de Systems Manager Automation con un periodo de mantenimiento mediante la AWS CLI. El valor --targets indica un ID de destino del periodo de mantenimiento. Además, a pesar de que el parámetro --targets especifica un ID de destino del periodo, los parámetros del manual de procedimientos de Automation requieren que se proporcione un ID de nodo. En este caso, el comando utiliza el pseudoparámetro {{RESOURCE_ID}}como el valor de InstanceId.

    Comando de la AWS CLI:

    Linux & macOS

    El siguiente comando de ejemplo reinicia las instancias de Amazon Elastic Compute Cloud (Amazon EC2) que pertenecen al grupo de destino del periodo de mantenimiento con el ID e32eecb2-646c-4f4b-8ed1-205fbEJEMPLO.

    aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \ --task-arn "AWS-RestartEC2Instance" \ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \ --task-type AUTOMATION \ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \ --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" \ --description "Automation task to restart EC2 instances"
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^ --task-arn "AWS-RestartEC2Instance" ^ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^ --task-type AUTOMATION ^ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" ^ --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" ^ --description "Automation task to restart EC2 instances"

    Para obtener más información acerca de cómo trabajar con pseudoparámetros para tareas de periodo de mantenimiento, consulte Utilización de pseudoparámetros en el registro de las tareas del periodo de mantenimiento y Ejemplos de registro de tareas.

Mensajes de error: “Maintenance window tasks without targets don't support MaxConcurrency values” (“Las tareas del periodo de mantenimiento sin destinos no admiten valores MaxConcurrency”) y “Maintenance window tasks without targets don't support MaxErrors values” (“Las tareas del periodo de mantenimiento sin destinos no admiten valores MaxErrors”).

Problema: cuando registra una tarea de tipo Run Command, debe especificar al menos un destino en el que se ejecutará la tarea. Para otros tipos de tarea (Automation, AWS Lambda y AWS Step Functions), en función de la naturaleza de la tarea, los destinos son opcionales. Las opciones MaxConcurrency (la cantidad de recursos en los que se ejecuta una tarea al mismo tiempo) y MaxErrors (la cantidad de errores para ejecutar la tarea en los recursos de destino antes de que se produzca un error en la tarea) no son necesarias ni compatibles con las tareas de periodo de mantenimiento que no especifican destinos. El sistema genera estos mensajes de error cuando se especifican valores para cualquiera de estas opciones y no se especifica ningún destino de tarea.

Solución: si recibe alguno de estos errores, elimine los valores de simultaneidad y del límite de error antes de continuar registrando o actualizando la tarea del periodo de mantenimiento.

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 la Guía del usuario de AWS Systems Manager.