Automatisez le nettoyage des images en utilisant les politiques de cycle de vie d'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.

Automatisez le nettoyage des images en utilisant les politiques de cycle de vie d'Amazon ECR

Les politiques ECR de cycle de vie d'Amazon permettent de mieux contrôler la gestion du cycle de vie des images dans un référentiel privé. Une politique de cycle de vie contient une ou plusieurs règles, et chaque règle définit une action pour AmazonECR. Selon les critères d'expiration définis dans la politique de cycle de vie, les images expirent en fonction de leur âge ou de leur nombre dans les 24 heures. Lorsqu'Amazon ECR exécute une action basée sur une politique de cycle de vie, cette action est capturée en tant qu'événement dans AWS CloudTrail. Pour de plus amples informations, veuillez consulter Enregistrement des ECR actions Amazon avec AWS CloudTrail.

Fonctionnement des politiques de cycle de vie

Une politique de cycle de vie se compose d'une ou de plusieurs règles qui déterminent quelles sont images d'un référentiel qui doivent expirer. Lorsque vous envisagez d'utiliser des politiques de cycle de vie, il est important d'afficher l'aperçu de la politique de cycle de vie pour confirmer quelles sont les images que la politique de cycle de vie doit faire expirer avant de l'appliquer à un référentiel. Une fois qu'une politique de cycle de vie est appliquée à un référentiel, vous pouvez vous attendre à ce que les images concernées expireront dans les 24 heures après avoir satisfait aux critères d'expiration. Lorsqu'Amazon ECR exécute une action basée sur une politique de cycle de vie, elle est capturée en tant qu'événement dans AWS CloudTrail. Pour de plus amples informations, veuillez consulter Enregistrement des ECR actions Amazon avec AWS CloudTrail.

Le diagramme suivant illustre un flux de travail de la politique du cycle de vie.

Diagramme montrant le processus d'évaluation et d'application d'une politique de cycle de vie.
  1. Créez une ou plusieurs règles de test.

  2. Enregistrez les règles de test et exécutez l'aperçu.

  3. L'évaluateur de la politique de cycle de vie examine toutes les règles et marque les images auxquelles chaque règle doit s'appliquer.

  4. L'évaluateur de la politique de cycle de vie applique ensuite les règles, en fonction de la priorité de la règle, et affiche les images du référentiel définies comme expirées.

  5. Examinez les résultats du test, en vérifiant que les images marquées comme ayant expiré correspondent à ce que vous souhaitiez faire expirer.

  6. Appliquez les règles de test en tant que politique de cycle de vie du référentiel.

  7. Après avoir créé la politique de cycle de vie, vous pouvez vous attendre à ce que les images concernées expireront dans les 24 heures après avoir satisfait aux critères d'expiration.

Règles d'évaluation de la politique de cycle de vie

L'évaluateur de politique de cycle de vie est chargé d'analyser le texte clair JSON de la politique de cycle de vie, d'évaluer toutes les règles, puis d'appliquer ces règles en fonction de la priorité des règles aux images du référentiel. Ce qui suit explique la logique de l'évaluateur de la politique de cycle de vie plus en détails. Pour obtenir des exemples, consultez Exemples de politiques relatives au cycle de vie sur Amazon ECR.

  • Toutes les règles sont évaluées en même temps, quelle que soit la priorité de la règle. Lorsque l'évaluation de toutes les règles est terminée, les règles sont ensuite appliquées en fonction de leur priorité.

  • Une image est expirée par exactement des règles un ou zéro.

  • Une image qui correspond aux exigences d'étiquetage d'une règle ne peut pas être expirée par une règle avec une priorité plus basse.

  • Les règles ne peuvent jamais marquer des images auxquelles correspondent des règles de priorité plus haute, mais elles peuvent quand même les identifier si elles n'ont pas expiré.

  • L'ensemble de règles doit contenir un ensemble unique de préfixes d'étiquette.

  • Une seule règle est autorisée à sélectionner des images non étiquetées.

  • Si une image est référencée par une liste de manifestes, elle ne peut pas expirer sans que la liste des manifestes ne soit d'abord supprimée.

  • L'expiration est toujours classée par pushed_at_time, et les images plus anciennes expirent toujours avant les images plus récentes.

  • Une règle de politique de cycle de vie peut spécifier soit tagPatternList, soit tagPrefixList, mais pas les deux. Cependant, une politique de cycle de vie peut contenir plusieurs règles dans lesquelles différentes règles utilisent à la fois des listes de modèles et de préfixes. Une image est correctement mise en correspondance si toutes les balises de la tagPrefixList valeur tagPatternList ou sont mises en correspondance avec l'une des balises de l'image.

  • Les paramètres tagPatternList ou tagPrefixList ne peuvent être utilisés que si tagStatus est tagged.

  • Lors de l’utilisation de tagPatternList, une image fait l’objet d’une correspondance si elle correspond au filtre de caractère générique. Par exemple, si un filtre de prod* est appliqué, il correspondra aux balises d'image dont le nom commence par prod tel que prodprod1, ou. production-team1 De même, si un filtre de *prod* est appliqué, il correspondra aux balises d'image dont le nom contient une valeur prod telle que repo-production ou. prod-team

    Important

    Il existe une limite maximale de quatre caractères génériques (*) par chaîne. Par exemple, ["*test*1*2*3", "test*1*2*3*"] est valide mais ["test*1*2*3*4*5*6"] ne l’est pas.

  • Lors de l'utilisationtagPrefixList, une image est correctement mise en correspondance si tous les filtres génériques de la tagPrefixList valeur correspondent à l'une des balises de l'image.

  • Le paramètre countUnit est uniquement utilisé si countType a pour valeur sinceImagePushed.

  • Avec countType = imageCountMoreThan, les images sont triées de la plus récente à la plus ancienne en fonction de la valeur de pushed_at_time, et toutes les images supérieures au décompte indiqué expirent.

  • Avec countType = sinceImagePushed, toutes les images dont la valeur de pushed_at_time est plus ancienne que le nombre de jours indiqué en fonction de countNumber expirent.