Exemples de politiques relatives au cycle de vie sur Amazon ECR - Amazon ECR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de politiques relatives au cycle de vie sur Amazon ECR

Vous trouverez ci-dessous des exemples de politiques de cycle de vie illustrant la syntaxe.

Pour plus d'informations sur les propriétés des politiques, consultezPropriétés de la politique de cycle de vie sur Amazon ECR. Pour obtenir des instructions sur la création d'une politique de cycle de vie à l'aide du AWS CLI, consultezCréer une politique de cycle de vie (AWS CLI).

Modèle de politique de cycle de vie

Le contenu de votre politique de cycle de vie est évalué avant d'être associé à un référentiel. Le modèle de JSON syntaxe de la politique de cycle de vie est le suivant.

{ "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" } } ] }

Filtrer sur l'ancienneté des images

Voici un exemple de syntaxe d’une politique de cycle de vie qui fait expirer les images qui ont une balise commençant par prod à l’aide d’une tagPatternList de prod* qui ont également plus de 14 jours d’ancienneté.

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

Filtrer sur le décompte d'images

Voici un exemple de syntaxe d’une politique de cycle de vie qui conserve uniquement une image non balisée et fait expirer toutes les autres.

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

Filtrer sur plusieurs règles

Les exemples suivants utilisent plusieurs règles dans une politique de cycle de vie. Des exemples de référentiel et de politique de cycle de vie sont fournis avec une explication du résultat.

Exemple A

Contenu du référentiel :

  • Image A, Taglist: ["beta-1", "prod-1"], Transmise : il y a 10 jours

  • Image B, Taglist: ["beta-2", "prod-2"], Transmise : il y a 9 jours

  • Image C, Taglist: ["beta-3"], Transmise : il y a 8 jours

Texte de la politique de cycle de vie :

{ "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 logique de cette politique de cycle de vie serait :

  • La règle 1 identifie les images étiquetées avec le préfixe prod. Elle doit marquer les images, en commençant par la plus ancienne, jusqu'à ce qu'il reste une image qui corresponde, ou moins. Elle marque l'image A pour expiration.

  • La règle 2 identifie les images étiquetées avec le préfixe beta. Elle doit marquer les images, en commençant par la plus ancienne, jusqu'à ce qu'il reste une image qui corresponde, ou moins. Elle marque l'image A et l'image B pour expiration. Cependant, l'image A a déjà été examinée par la règle 1 et, si l'image B expirait, cela violerait la règle 1. L'image B est donc ignorée.

  • Résultat : L'image A est expirée.

Exemple B

Il s'agit du même référentiel que dans l'exemple précédent, mais l'ordre de priorité des règles est modifié pour illustrer le résultat.

Contenu du référentiel :

  • Image A, Taglist: ["beta-1", "prod-1"], Transmise : il y a 10 jours

  • Image B, Taglist: ["beta-2", "prod-2"], Transmise : il y a 9 jours

  • Image C, Taglist: ["beta-3"], Transmise : il y a 8 jours

Texte de la politique de cycle de vie :

{ "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 logique de cette politique de cycle de vie serait :

  • La règle 1 identifie les images étiquetées avec le préfixe beta. Elle doit marquer les images, en commençant par la plus ancienne, jusqu'à ce qu'il reste une image qui corresponde, ou moins. Elle examine les trois images, et marque l'image A et l'image B pour expiration.

  • La règle 2 identifie les images étiquetées avec le préfixe prod. Elle doit marquer les images, en commençant par la plus ancienne, jusqu'à ce qu'il reste une image qui corresponde, ou moins. Elle n'examine aucune image, car toutes les images disponibles ont déjà été examinées par la règle 1. Elle ne marque donc aucune image supplémentaire.

  • Résultat : Les images A et B sont expirées.

Filtrer sur plusieurs étiquettes dans une seule règle

Les exemples suivants indiquent la syntaxe de la politique de cycle de vie pour plusieurs modèles de balises dans une seule règle. Des exemples de référentiel et de politique de cycle de vie sont fournis avec une explication du résultat.

Exemple A

Lorsque plusieurs modèles de balises sont indiqués dans une seule règle, les images doivent correspondre à tous les modèles de balises répertoriés.

Contenu du référentiel :

  • Image A, Taglist: ["alpha-1"], Transmise : il y a 12 jours

  • Image B, Taglist: ["beta-1"], Transmise : il y a 11 jours

  • Image C, Taglist: ["alpha-2", "beta-2"],Transmise : il y a 10 jours

  • Image D, Taglist: ["alpha-3"], Transmise : il y a 4 jours

  • Image E, Taglist: ["beta-3"], Transmise : il y a 3 jours

  • Image F, Taglist: ["alpha-4", "beta-4"],Transmise : il y a 2 jours

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

La logique de cette politique de cycle de vie serait :

  • La règle 1 identifie les images balisées par les préfixes alpha et beta. Elle examine les images C et F. Elle doit marquer les images de plus de cinq jours, ce qui est le cas de l'image C.

  • Résultat : L'image C est expirée.

Exemple B

L'exemple suivant montre que des étiquettes ne sont pas exclusives.

Contenu du référentiel :

  • Image A, Taglist: ["alpha-1", "beta-1", "gamma-1"], Transmise : il y a 10 jours

  • Image B, Taglist: ["alpha-2", "beta-2"], Transmise : il y a 9 jours

  • Image C, Taglist: ["alpha-3", "beta-3", "gamma-2"], Transmise : il y a 8 jours

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

La logique de cette politique de cycle de vie serait :

  • La règle 1 identifie les images balisées par les préfixes alpha et beta. Elle examine toutes les images. Elle doit marquer les images, en commençant par la plus ancienne, jusqu'à ce qu'il reste une image qui corresponde, ou moins. Elle marque les images A et B pour expiration.

  • Résultat : Les images A et B sont expirées.

Filtrer sur toutes les images

Les exemples de politique de cycle de vie suivants indiquent toutes les images avec différents filtres. Des exemples de référentiel et de politique de cycle de vie sont fournis avec une explication du résultat.

Exemple A

Voici la syntaxe d'une politique de cycle de vie qui applique toutes les règles, mais conserve uniquement une image et fait expirer toutes les autres.

Contenu du référentiel :

  • Image A, Taglist: ["alpha-1"], Transmise : il y a 4 jours

  • Image B, Taglist: ["beta-1"], Transmise : il y a 3 jours

  • Image C, Taglist: [], Transmise : il y a 2 jours

  • Image D, Taglist: ["alpha-2"], Transmise : il y a 1 jour

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

La logique de cette politique de cycle de vie serait :

  • La règle 1 identifie toutes les images. Elle examine les images A, B, C et D. Elle doit faire expirer toutes les images, à l'exception de la plus récente. Elle marque les images A, B et C pour expiration.

  • Résultat : Les images A, B et C expirent.

Exemple B

L'exemple suivant illustre une politique de cycle de vie qui combine tous les types de règles dans une seule politique.

Contenu du référentiel :

  • Image A, Taglist: ["alpha-1", "beta-1"], Transmise : il y a 4 jours

  • Image B, Taglist: [], Transmise : il y a 3 jours

  • Image C, Taglist: ["alpha-2"],Transmise : il y a 2 jours

  • Image D, Taglist: ["git hash"], Transmise : il y a 1 jour

  • Image E, Taglist: [], Transmise : il y a 1 jour

{ "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 logique de cette politique de cycle de vie serait :

  • La règle 1 identifie les images étiquetées avec le préfixe alpha. Elle identifie les images A et C. Elle doit conserver l'image la plus récente et marquer les autres pour expiration. Elle marque l'image A pour expiration.

  • La règle 2 identifie les images non étiquetées. Elle identifie les images B et E. Elle doit marquer toutes les images datant de plus d'un jour pour expiration. Elle marque l'image B pour expiration.

  • La règle 3 identifie toutes les images. Elle identifie les images A, B, C, D et E. Elle doit conserver l'image la plus récente et marquer les autres pour expiration. Cependant, elle ne peut pas marquer les images A, B, C ou E, car elles ont été identifiées par des règles de priorité plus haute. Elle marque l'image D pour expiration.

  • Résultat : Les images A, B et D expirent.