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 de la politique de cycle de vie, les images peuvent être archivées ou expirées selon les critères spécifiés dans la politique de cycle de vie 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 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 de plus amples informations, veuillez consulter 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 des politiques de cycle de vie applique ensuite les règles, en fonction de la priorité des règles, et affiche les images du référentiel configurées pour être expirées ou archivées. Un numéro de priorité de règle inférieur signifie une priorité plus élevée. Par exemple, une règle de priorité 1 a priorité sur une règle de priorité 2.

  5. Passez en revue les résultats du test pour vous assurer que les images marquées comme expirées ou archivées correspondent à vos attentes.

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

  7. Une fois la politique de cycle de vie créée, vous devez vous attendre à ce que les images soient expirées ou archivées dans les 24 heures suivant le respect des 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.

  • Lorsque des artefacts de référence sont présents dans un référentiel, les politiques de cycle de vie d'Amazon ECR expirent ou archivent automatiquement ces artefacts dans les 24 heures suivant la suppression ou l'archivage de l'image d'objet.

  • 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 ou archivée selon exactement une ou aucune règle.

  • Une image qui répond aux exigences de balisage d'une règle ne peut pas être expirée ou archivée par une règle de priorité inférieure.

  • Les règles ne peuvent jamais marquer les images marquées par des règles de priorité plus élevée, mais elles peuvent tout de même les identifier comme si elles n'avaient pas été expirées ou archivées.

  • L'ensemble de règles sélectionnant une classe de stockage spécifique doit contenir un ensemble unique de préfixes.

  • Une seule règle sélectionnant une classe de stockage spécifique est autorisée pour sélectionner des images non étiquetées.

  • Si une image est référencée par une liste de manifestes, elle ne peut pas être expirée ou archivée sans que la liste de manifestes soit préalablement supprimée ou archivée.

  • L'expiration est toujours ordonnée par pushed_at_time ou transitioned_at_time et fait toujours expirer les anciennes images avant les plus récentes. Si une image a été archivée puis restaurée par le passé, c'est l'image qui last_activated_at est utilisée à la place depushed_at_time.

  • 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 countUnit paramètre n'est utilisé que s'countTypeil est sinceImagePushedsinceImagePulled, ousinceImageTransitioned.

  • AveccountType = imageCountMoreThan, les images sont triées de la plus récente à la plus ancienne, pushed_at_time puis toutes les images supérieures au nombre spécifié sont expirées ou archivées.

  • AveccountType = sinceImagePushed, toutes les images dont le nombre de jours pushed_at_time est supérieur au nombre de jours spécifié countNumber sont expirées ou archivées.

  • AveccountType = sinceImagePulled, toutes les images dont le nombre de jours last_recorded_pulltime est supérieur au nombre de jours spécifié countNumber sont archivées. Si une image n'a jamais été extraite, c'pushed_at_timeest l'image qui est utilisée à la place delast_recorded_pulltime. Si une image a été archivée puis restaurée par le passé, mais qu'elle n'a jamais été extraite depuis sa restauration, c'last_activated_atest l'image qui est utilisée à la place delast_recorded_pulltime.

  • AveccountType = sinceImageTransitioned, toutes les images archivées last_archived_at datant de plus de jours que le nombre de jours spécifié countNumber sont expirées.

  • L'expiration est toujours ordonnée pushed_at_time et fait toujours expirer les anciennes images avant les plus récentes.