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 de cycle de vie Amazon ECR vous permettent de contrôler la gestion du cycle de vie des images d'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 Amazon ECR. 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 plus d’informations, consultez Journalisation des actions Amazon ECR 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. Lorsque Amazon ECR exécute une action basée sur une stratégie de cycle de vie, elle est capturée en tant qu'événement dans AWS CloudTrail. Pour plus d’informations, consultez Journalisation des actions Amazon ECR 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

Cet évaluateur de politique de cycle de vie analyse le code JSON en texte brut de la politique de cycle de vie, évalue toutes les règles, puis applique ces règles aux images en fonction de la priorité des règles dans le 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 de cycle de vie dans 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.

  • 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 prod* est appliqué, l’image correspond aux référentiels dont le nom commence par prod, tel que prod, prod1 ou production-team1. De même, si un filtre *prod* est appliqué, l’image correspond aux référentiels 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.

  • Lorsque vous utilisez tagPrefixList, une image fait l’objet d’une correspondance si toutes les balises dans la valeur tagPrefixList correspondent à 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.