Solucionar problemas de Generador de imágenes - EC2 Image Builder

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solucionar problemas de Generador de imágenes

EC2 Image Builder se integra con Servicios de AWS el monitoreo y la solución de problemas para ayudarlo a solucionar problemas de creación de imágenes. Generador de Imágenes registra y muestra el progreso de cada paso del proceso de creación de imágenes. Además, Generador de Imágenes puede exportar registros a la ubicación de Amazon S3 que usted proporcione.

Para la solución avanzada de problemas, puede ejecutar comandos y scripts predefinidos mediante Ejecución de comandos de AWS Systems Manager.

Solución de problemas de canalizaciones

Si se produce un error en la compilación de una canalización de Generador de Imágenes, este devuelve un mensaje de error que describe el error. Generador de Imágenes también devuelve una workflow execution ID en el mensaje de error, como en el siguiente ejemplo de resultado:

Workflow Execution ID: wf-12345abc-6789-0123-abc4-567890123abc failed with reason: …

Generador de Imágenes organiza y dirige las acciones de creación de imágenes mediante una serie de pasos que se definen para las etapas de tiempo de ejecución de su proceso de creación de imágenes estándar. Cada una de las etapas de creación y prueba del proceso tiene un flujo de trabajo asociado. Cuando Generador de Imágenes ejecuta un flujo de trabajo para crear o probar una nueva imagen, genera un recurso de metadatos del flujo de trabajo que realiza un seguimiento de los detalles del tiempo de ejecución.

Las imágenes de contenedor tienen un flujo de trabajo adicional que se ejecuta durante la distribución.

Investigación de los detalles de los errores de las instancias de tiempo de ejecución de su flujo de trabajo

Para solucionar un error en el tiempo de ejecución de tu flujo de trabajo, puedes llamar a las acciones GetWorkflowExecutiony a la ListWorkflowStepExecutionsAPI con tu. workflow execution ID

Revisión de los registros de tiempo de ejecución del flujo de trabajo
  • Amazon CloudWatch Logs

    Image Builder publica registros detallados de ejecución del flujo de trabajo en el siguiente grupo y flujo de CloudWatch registros de Image Builder:

    LogGroup:

    /aws/imagebuilder/ImageName

    LogStream (x.x.x/x):

    ImageVersion/ImageBuildVersion

    Con CloudWatch los registros, puede buscar datos de registro con patrones de filtro. Para obtener más información, consulta Buscar datos de registro mediante patrones de filtro en la Guía del usuario de Amazon CloudWatch Logs.

  • AWS CloudTrail

    Todas las actividades de creación también se registran CloudTrail si están activadas en tu cuenta. Puedes filtrar CloudTrail los eventos por fuenteimagebuilder.amazonaws.com. Como alternativa, puedes buscar el ID de EC2 instancia de Amazon que se devuelve en el registro de ejecución para ver más detalles sobre la ejecución de la canalización.

  • Amazon Simple Storage Service (S3)

    Si especificó un nombre de bucket de S3 y un prefijo de clave en la configuración de la infraestructura, la ruta del registro del tiempo de ejecución de los pasos del flujo de trabajo sigue este patrón:

    S3://S3BucketName/KeyPrefix/ImageName/ImageVersion/ImageBuildVersion/WorkflowExecutionId/StepName

    Los registros que envías a tu bucket de S3 muestran los pasos y los mensajes de error relacionados con la actividad de la EC2 instancia durante el proceso de creación de la imagen. Los registros incluyen los resultados del registro del administrador de componentes, las definiciones de los componentes que se ejecutaron y el resultado detallado (en JSON) de todos los pasos realizados en la instancia. Si encuentra un problema, debería revisar estos archivos, empezando por application.log, para diagnosticar la causa del problema en la instancia.

De forma predeterminada, Image Builder cierra la instancia de EC2 compilación o prueba de Amazon que se está ejecutando cuando se produce un error en la canalización. Puede cambiar la configuración de la instancia del recurso de configuración de infraestructura que utiliza la canalización para retener la instancia de compilación o prueba a fin de solucionar problemas.

Para cambiar la configuración de la instancia en la consola, debe desactivar la casilla de verificación Terminar la instancia en caso de fallo, que se encuentra en la sección Configuración de solución de problemas del recurso de configuración de la infraestructura.

También puede cambiar la configuración de la instancia con el comando update-infrastructure-configuration en la AWS CLI. Defina el valor terminateInstanceOnFailure como false en el archivo JSON al que hace referencia el comando con el parámetro --cli-input-json. Para obtener más información, consulte Actualización de una configuración de infraestructura.

Escenarios de solución de problemas

En esta sección se enumeran los siguientes escenarios detallados de solución de problemas:

Para ver los detalles de un escenario, elija el título del escenario para ampliarlo. Puede tener varios títulos ampliados al mismo tiempo.

Descripción

Se produce un error en la compilación de la canalización con el código de estado «AccessDeniedAcceso denegado: 403".

Causa

Entre las causas posibles se incluyen las siguientes:

  • El perfil de la instancia no tiene los permisos necesarios para acceder a los recursos APIs o componentes.

  • Al rol del perfil de instancia le faltan los permisos necesarios para el registro en Amazon S3. Por lo general, esto ocurre cuando el rol del perfil de la instancia no tiene PutObjectpermisos para los buckets de S3.

Solución

Según la posible causa, este problema puede resolverse de la siguiente manera:

  • Al perfil de instancia le faltan políticas administradas: agregue las políticas que faltan a su rol de perfil de instancia. A continuación, vuelva a ejecutar la canalización.

  • Al perfil de instancia le faltan permisos de escritura para el bucket de S3: añada una política a su rol de perfil de instancia que otorgue PutObjectpermisos de escritura en su bucket de S3. A continuación, vuelva a ejecutar la canalización.

Descripción

La creación de la canalización falla con «status = 'TimedOut'» y «mensaje de error = 'Se agotó el tiempo de espera del paso mientras se verifica la disponibilidad del agente de Systems Manager en las instancias de destino'».

Causa

Entre las causas posibles se incluyen las siguientes:

  • La instancia que se lanzó para realizar las operaciones de compilación y ejecutar los componentes no pudo acceder al punto de conexión de Systems Manager.

  • El perfil de instancia no cuenta con los permisos requeridos.

Solución

Según la posible causa, este problema se puede resolver de la siguiente manera:

Descripción

Si el tipo de instancia utilizado para crear una AMI de Windows de Generador de Imágenes no coincide con el tipo de instancia que se utiliza para lanzar desde la AMI, puede ocurrir un problema cuando los volúmenes no raíz están fuera de línea durante el lanzamiento. Esto ocurre principalmente cuando la instancia de compilación utiliza una arquitectura más nueva que la instancia de lanzamiento.

El siguiente ejemplo muestra lo que ocurre cuando una AMI de Image Builder se crea en un tipo de instancia EC2 Nitro y se lanza en una instancia de EC2 Xen:

Tipo de instancia de compilación: m5.large (Nitro)

Tipo de instancia de lanzamiento: t2.medium (Xen)

PS C:\Users\Administrator> get-disk Number Friendly Name Serial Number Health Status Operational Status Total Size Partition Style ------ ------------- ------------- ------------- ------------------ ---------- --------------- 0 AWS PVDISK vol0abc12d34e567f8a9 Healthy Online 30 GB MBR 1 AWS PVDISK vol1bcd23e45f678a9b0 Healthy Offline 8 GB MBR

Causa

Debido a la configuración predeterminada de Windows, los discos recién descubiertos no se ponen en línea ni se formatean automáticamente. Cuando se activa el tipo de instancia EC2, Windows considera que se están descubriendo nuevos discos. Esto se debe al cambio de controlador subyacente.

Solución

Le recomendamos que utilice el mismo sistema de tipos de instancias al compilar la AMI de Windows desde la que desea iniciar. No incluya tipos de instancias que estén creados en sistemas diferentes en su configuración de infraestructura. Si alguno de los tipos de instancias que especifica usa el sistema Nitro, todos deben usar el sistema Nitro.

Para obtener más información sobre las instancias que se crean en el sistema Nitro, consulta Instancias creadas en el sistema Nitro en la Guía del EC2 usuario de Amazon.

Descripción

Está utilizando una imagen base reforzada de CIS y la compilación falla.

Causa

Si el directorio /tmp se clasifica comonoexec, se puede producir un error en Generador de Imágenes.

Solución

Elija una ubicación diferente para su directorio de trabajo en el campo workingDirectory de la receta de imagen. Para obtener más información, consulte la descripción del tipo ImageRecipede datos.

Descripción

Systems Manager Automation muestra un error en el paso de automatización AssertInventoryCollection.

Causa

Es posible que usted o su organización hayan creado una asociación de administradores estatales de Systems Manager que recopila información de inventario para EC2 las instancias. Si la recopilación mejorada de metadatos de imágenes está habilitada para la canalización de Generador de Imágenes (esta es la opción predeterminada), Generador de Imágenes intentará crear una nueva asociación de inventario para la instancia de compilación. Sin embargo, Systems Manager no permite múltiples asociaciones de inventario para las instancias administradas e impide una nueva asociación si ya existe una. Esto produce un error en la operación y provoca un error en la creación de la canalización.

Solución

Para resolver este problema, desactive la recopilación mejorada de metadatos de imágenes mediante uno de los métodos siguientes:

  • Actualice la canalización de imágenes en la consola para desactivar la casilla de verificación Habilitar la recopilación mejorada de metadatos. Guarde los cambios y ejecute una compilación de canalización.

    Para obtener más información sobre la actualización de la canalización de imágenes de AMI mediante la consola EC2 Image Builder, consulteActualización de las canalizaciones de imágenes de AMI desde la consola. Para obtener más información sobre cómo actualizar la canalización de imágenes de contenedores mediante la consola EC2 Image Builder, consulteActualización de una canalización de imágenes de contenedor desde la consola.

  • También puede actualizar la canalización de imágenes con el comando update-image-pipeline en la AWS CLI. Para ello, incluya la propiedad EnhancedImageMetadataEnabled en su archivo JSON, establecida como false. En el siguiente ejemplo, se muestra la propiedad establecida como false.

    { "name": "MyWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": false, "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }

Para evitar que esto suceda con las nuevas canalizaciones, desactive la casilla Habilitar la recopilación mejorada de metadatos al crear una nueva canalización mediante la consola de EC2 Image Builder, o establezca el valor de la EnhancedImageMetadataEnabled propiedad en su archivo JSON para false cuando cree la AWS CLI canalización mediante.