Ejemplos de políticas de ciclo de vida en Amazon ECR - Amazon ECR

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.

Ejemplos de políticas de ciclo de vida en Amazon ECR

A continuación se muestran ejemplos de políticas de ciclo de vida que muestran la sintaxis.

Para obtener más información sobre las propiedades de las políticas, consultePropiedades de la política de ciclo de vida en Amazon ECR. Para obtener instrucciones sobre cómo crear una política de ciclo de vida mediante el AWS CLI, consulteCreación de una política de ciclo de vida (AWS CLI).

Plantilla de política de ciclo de vida

El contenido de su política de ciclo de vida se evalúa antes de asociarlo a un repositorio. A continuación, se muestra la plantilla de sintaxis JSON de la política de ciclo de vida.

{ "rules": [ { "rulePriority": integer, "description": "string", "selection": { "tagStatus": "tagged"|"untagged"|"any", "tagPatternList": list<string>, "tagPrefixList": list<string>, "countType": "imageCountMoreThan"|"sinceImagePushed", "countUnit": "string", "countNumber": integer }, "action": { "type": "expire" } } ] }

Filtrar por antigüedad de las imágenes

En el siguiente ejemplo, se muestra la sintaxis de la política de ciclo de vida de una política que crea el vencimiento de las imágenes con una etiqueta que comienza con prod al usar una tagPatternList de prod* que también tienen más de 14 días.

{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }

Filtrar por el número de imágenes

En el siguiente ejemplo se muestra la sintaxis de una política de ciclo de vida que conserva solo una imagen sin etiquetar y marca para vencimiento todas las demás:

{ "rules": [ { "rulePriority": 1, "description": "Keep only one untagged image, expire all others", "selection": { "tagStatus": "untagged", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

Filtrar por varias reglas

El siguiente ejemplo usa varias reglas en una política de ciclo de vida. Se ofrece un repositorio de ejemplo y una política de ciclo de vida con una explicación del resultado.

Ejemplo A

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["beta-1", "prod-1"], insertada: hace 10 días

  • Imagen B, lista de etiquetas: ["beta-2", "prod-2"], insertada: hace 9 días

  • Imagen C, lista de etiquetas: ["beta-3"], insertada: hace 8 días

Texto de la política de ciclo de vida:

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica las imágenes etiquetadas con el prefijo prod. Debería marcar las imágenes, empezando por la más antigua, hasta que queden una o menos imágenes. Marca la imagen A para vencimiento.

  • La regla 2 identifica las imágenes etiquetadas con el prefijo beta. Debería marcar las imágenes, empezando por la más antigua, hasta que queden una o menos imágenes. Marca la imagen A y la imagen B para vencimiento. Sin embargo, la imagen A ya ha sido identificada por la regla 1 y, si la imagen B se marcara para vencimiento, se infringiría la regla 1, por lo que se omite.

  • Resultado: la imagen A se marca para vencimiento

Ejemplo B

Este es el mismo repositorio que el del ejemplo anterior, pero se ha cambiado el orden de prioridad de las reglas para ilustrar el resultado.

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["beta-1", "prod-1"], insertada: hace 10 días

  • Imagen B, lista de etiquetas: ["beta-2", "prod-2"], insertada: hace 9 días

  • Imagen C, lista de etiquetas: ["beta-3"], insertada: hace 8 días

Texto de la política de ciclo de vida:

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica las imágenes etiquetadas con el prefijo beta. Debería marcar las imágenes, empezando por la más antigua, hasta que queden una o menos imágenes. Se identifican las tres imágenes, y la imagen A y la imagen B se marcan para vencimiento.

  • La regla 2 identifica las imágenes etiquetadas con el prefijo prod. Debería marcar las imágenes, empezando por la más antigua, hasta que queden una o menos imágenes. No se identifica ninguna imagen porque todas las imágenes disponibles ya han sido identificadas por la regla 1, por lo que no se marcan imágenes adicionales.

  • Resultado: la imagen A y la imagen B se marcan para vencimiento.

Filtrar por varias etiquetas en una sola regla

Los siguientes ejemplos especifican la sintaxis de la política de ciclo de vida para varios patrones de etiqueta en una sola regla. Se ofrece un repositorio de ejemplo y una política de ciclo de vida con una explicación del resultado.

Ejemplo A

Cuando se especifican varios patrones de etiqueta en una sola regla, las imágenes deben coincidir con todos los patrones de etiqueta especificados.

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["alpha-1"], insertada: hace 12 días

  • Imagen B, lista de etiquetas: ["beta-1"], insertada: hace 11 días

  • Imagen C, lista de etiquetas: ["alpha-2", "beta-2"], insertada: hace 10 días

  • Imagen D, lista de etiquetas: ["alpha-3"], insertada: hace 4 días

  • Imagen E, lista de etiquetas: ["beta-3"], insertada: hace 3 días

  • Imagen F, lista de etiquetas: ["alpha-4", "beta-4"], insertada: hace 2 días

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "sinceImagePushed", "countNumber": 5, "countUnit": "days" }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica las imágenes etiquetadas con el prefijo alpha y beta. Se identifican las imágenes C y F y se marcan las imágenes que tienen más de cinco días (la imagen C).

  • Resultado: la imagen C se marca para vencimiento

Ejemplo B

El ejemplo siguiente ilustra que las etiquetas no son exclusivas.

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["alpha-1", "beta-1", "gamma-1"], insertada: hace 10 días

  • Imagen B, lista de etiquetas: ["alpha-2", "beta-2"], insertada: hace 9 días

  • Imagen C, lista de etiquetas: ["alpha-3", "beta-3", "gamma-2"], insertada: hace 8 días

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica las imágenes etiquetadas con el prefijo alpha y beta. Se identifican todas las imágenes. Debería marcar las imágenes, empezando por la más antigua, hasta que queden una o menos imágenes. Se marcan la imagen A y la imagen B para vencimiento.

  • Resultado: la imagen A y la imagen B se marcan para vencimiento.

Filtrar por todas las imágenes

Los siguientes ejemplos de políticas de ciclo de vida especifican todas las imágenes con filtros distintos. Se ofrece un repositorio de ejemplo y una política de ciclo de vida con una explicación del resultado.

Ejemplo A

A continuación, se muestra la sintaxis de una política de ciclo de vida que se aplica a todas las reglas propiedad conserva solo una imagen sin etiquetar y marca para vencimiento todas las demás.

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["alpha-1"], insertada: hace 4 días

  • Imagen B, lista de etiquetas: ["beta-1"], insertada: hace 3 días

  • Imagen C, lista de etiquetas: [], insertada: hace 2 días

  • Imagen D, lista de etiquetas: ["alpha-2"], insertada: hace 1 día

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica todas las imágenes. Detecta las imágenes A, B, C y D. Debe marcar para vencimiento todas las imágenes excepto la más reciente. Marca las imágenes A, B y C para vencimiento.

  • Resultado: las imágenes A, B y C están vencidas.

Ejemplo B

El siguiente ejemplo ilustra una política de ciclo de vida que combina todos los tipos de reglas en una sola política.

Contenido del repositorio:

  • Imagen A, lista de etiquetas: ["alpha-1", "beta-1"], insertada: hace 4 días

  • Imagen B, lista de etiquetas: [], insertada: hace 3 días

  • Imagen C, lista de etiquetas: ["alpha-2"], insertada: hace 2 días

  • Imagen D, lista de etiquetas: ["git hash"], insertada: hace 1 día

  • Imagen E, lista de etiquetas: [], insertada: hace 1 día

{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 3, "description": "Rule 3", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }

La lógica de esta política de vida sería:

  • La regla 1 identifica las imágenes etiquetadas con el prefijo alpha. Identifica las imágenes A y C. Debe mantener la imagen más reciente y marcar el resto para vencimiento. Marca la imagen A para vencimiento.

  • La regla 2 identifica las imágenes sin etiquetar. Identifica las imágenes B y E. Debe marcar todas las imágenes anteriores a un día para vencimiento. Marca la imagen B para vencimiento.

  • La regla 3 identifica todas las imágenes. Identifica las imágenes A, B, C, D y E. Debe mantener la imagen más reciente y marcar el resto para vencimiento. Sin embargo, no puede marcar las imágenes A, B, C o E porque se identificaron con reglas de mayor prioridad. Marca la imagen D para vencimiento.

  • Resultado: las imágenes A, B y D están vencidas.