Saltar al contenido

¿Cómo soluciono los problemas de una política de ciclo de vida con estado FAILED del Generador de imágenes o de una política que se completó pero que aún tiene imágenes disponibles?

7 minutos de lectura
0

Mi política de ciclo de vida del Generador de imágenes de EC2 tiene el estado FAILED. O bien, la política de ciclo de vida se completó, pero las imágenes siguen disponibles.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Solución de problemas de una política de ciclo de vida que tiene un estado FAILED

Si una política de ciclo de vida tiene un estado FAILED, ejecuta el siguiente comando get-lifecycle-execution de la AWS CLI para comprobar el motivo:

aws imagebuilder get-lifecycle-execution --example-lifecycle-execution-id --region example-region

Nota: Sustituye example-lifecycle-execution-id por el ID de ejecución de la política de ciclo de vida y example-region por tu región de AWS.

Resultado de ejemplo:

{        "state": {
            "status": "FAILED",
            "reason": "Lifecycle execution failed. Reason: One or more resources failed."
        }

Para permitir que el Generador de imágenes ejecute políticas de ciclo de vida, debes usar el rol predeterminado EC2ImageBuilderLifecycleExecutionRole. O bien, crea un rol personalizado de AWS Identity and Access Management (IAM) para la administración del ciclo de vida dek Generador de imágenes. Si usas un rol que no tiene la configuración necesaria, la política de ciclo de vida devolverá un error.

Si utilizas una imagen de contenedor de Amazon Elastic Container Registry (Amazon ECR), debes añadir la etiqueta **LifecycleExecutionAccess: Generador de imágenes de EC2 ** a tu repositorio de Amazon ECR. Si no lo haces, recibirás el siguiente motivo en el resultado del comando get-lifecycle-execution:

«ImageBuilder is not authorized to perform: ecr:BatchGetImage on resource»

Para etiquetar la imagen del contenedor de Amazon ECR, consulta Etiquetado de un recurso desde la AWS CLI.

Solución de problemas en los que la política de ciclo de vida se ha completado, pero las imágenes siguen disponibles

Incluso cuando se complete la política de ciclo de vida, es posible que aún haya imágenes de máquina de Amazon (AMI), instantáneas de Amazon Elastic Block Store (Amazon EBS) o imágenes de contenedores disponibles.

Para solucionar este problema, ejecuta el siguiente comando get-lifecycle-policy para comprobar los detalles de la política:

aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region

Nota: Sustituye example-policy-arn por el nombre de recurso de Amazon (ARN) de la política de ciclo de vida y example-region por tu región.

A continuación, comprueba las siguientes configuraciones.

Comprobación de las condiciones de la regla de la política del ciclo de vida

Debes configurar el Generador de imágenes para eliminar los recursos una vez finalizada la política de ciclo de vida. Si no lo haces, el Generador de imágenes conservará las imágenes.

Para comprobar los recursos que elimina la política de ciclo de vida, consulta la sección policyDetails del resultado del comando get-lifecycle-policy:

"policyDetails": [
            {
                "action": {
                    "type": "DELETE",
                    "includeResources": {
                        "amis": false,
                        "snapshots": false
                    }

Comprueba el campo IncludeResources para identificar las AMI, las instantáneas y las imágenes de contenedor que la política de ciclo de vida marcó para su eliminación o retención. Si se han marcado como false, el Generador de imágenes retiene el recurso después de ejecutar la política de ciclo de vida.

Para actualizar los recursos que el Generador de imágenes elimina, actualiza tu política de ciclo de vida y, a continuación, ejecuta el siguiente comando update-lifecycle-policy:

aws imagebuilder update-lifecycle-policy --lifecycle-policy-arn example-policy-arn

Nota: Sustituye example-policy-arn por el ARN de la política de ciclo de vida actualizada.

O bien, completa los siguientes pasos para usar la consola del Generador de imágenes y actualizar tu política de ciclo de vida:

  1. Abre la consola del Generador de imágenes.
  2. Elige Políticas de ciclo de vida.
  3. Selecciona tu política.
  4. Elige Reglas y, a continuación, selecciona Condiciones de regla.
  5. Para que el Generador de imágenes elimine todos los recursos una vez finalizada la política de ciclo de vida, selecciona Anular el registro de las AMI asociadas y eliminar sus instantáneas y Eliminar las imágenes de contenedor de ECR asociadas.

** Comprobación de si las reglas de la política del ciclo de vida conservan las imágenes**

En la política del ciclo de vida Eliminación de reglas, puedes seleccionar Por antigüedad o Por recuento para conservar las imágenes de las recetas a las que afectan las reglas.

Si seleccionas Por antigüedad, conservarás las imágenes en función de su antigüedad. O bien, puedes usar Retener al menos una imagen por fórmula para conservar solo la última imagen disponible. Si seleccionas Por recuento, puedes usar Retener un número específico de imágenes por fórmula para especificar cuántas imágenes conservar.

Comprueba si el Generador de imágenes conserva las imágenes en función de los filtros AGE y COUNT.

En el siguiente ejemplo de salida de get-lifecycle-policy, el Generador de imágenes elimina las imágenes solo después de 3 años:

"filter": {
    "type": "AGE",
    "value": 3,
    "unit": "YEARS",
    "retainAtLeast": 1
}

En el siguiente ejemplo de salida de get-lifecycle-policy, el Generador de imágenes conserva 4 imágenes:

"filter": {
    "type": "COUNT",
    "value": 4
}

Si es necesario, actualiza los filtros Por edad o Por recuento de tu política de ciclo de vida.

También puedes usar reglas de exclusión para mantener las imágenes basadas en etiquetas. Comprueba si el Generador de imágenes conserva las imágenes según tus reglas de exclusión.

En el siguiente ejemplo de salida de get-lifecycle-policy, el Generador de imágenes conserva las imágenes que tienen la etiqueta example-tag:

"exclusionRules": {
    "tagMap": {
        "RetainImageTag": "example-tag"
    }
}

Para eliminar imágenes con la política de ciclo de vida, elimina la etiqueta que aparece en RetainImageTag de las AMI, las instantáneas o las imágenes de contenedor.

Comprobación del alcance de la política de ciclo de vida

Las fórmulas y etiquetas de la pestaña Alcance deben coincidir con los recursos existentes para que la política de ciclo de vida pueda gestionarlas.

Si las etiquetas y las fórmulas no coinciden con ningún recurso, verás el siguiente resultado al ejecutar el comandoget-lifecycle-execution:

{    "lifecycleExecution": {
        "lifecycleExecutionId": "lce-#",
        "resourcesImpactedSummary": {
            "hasImpactedResources": false
        }

Si hasImpactedResources es false, es que la instancia de Amazon Elastic Compute Cloud (Amazon EC2) en tiempo de ejecución no identificó ningún recurso de imagen que pudiera eliminar. Para resolver este problema, asegúrate de que el alcance de la política de ciclo de vida incluya fórmulas y etiquetas que afecten a los recursos de imágenes disponibles.

Comprobación de si se han etiquetado correctamente las imágenes del Generador de imágenes

El Generador de imágenes ejecuta la política de ciclo de vida basada en etiquetas únicamente para los recursos de imagen del Generador de imágenes. No puedes usar etiquetas AMI o de fórmulas en el alcance de la política de ciclo de vida. Asegúrate de etiquetar correctamente los recursos del Generador de imágenes con las etiquetas que especificaste en la pestaña Alcance de la política de ciclo de vida.

Para etiquetar una imagen existente, ejecuta el siguiente comando tag-resource:

aws imagebuilder tag-resource --resource-arn example-image-resource-arn --tags KeyName1=Value1,KeyName2=Value2 --region example-region

Nota: Sustituye example-image-resource-arn por el ARN de la imagen, Value1 y Value2 por las etiquetas y example-region por tu región. Debes usar la AWS CLI para etiquetar los recursos de imágenes del Generador de imágenes.

Comprobación de la configuración multicuenta

Para permitir que el Generador de imágenes realice acciones del ciclo de vida en otra cuenta de AWS, crea un rol de IAM para realizar acciones del ciclo de vida en la cuenta de destino.

OFICIAL DE AWSActualizada hace 10 meses
Sin comentarios