Partager via


Stratégie de rétention pour les manifestes non balisés

Azure Container Registry vous donne la possibilité de définir une stratégie de rétention pour les manifestes d’image stockés qui n’ont pas d’étiquette associée (manifestes non balisés). Quand une stratégie de rétention est activée, les manifestes non balisés dans le registre sont automatiquement supprimés après un certain nombre de jours que vous définissez. Cette fonctionnalité empêche que le registre se remplisse d’artefacts superflus et vous permet d’économiser des coûts de stockage.

Vous pouvez utiliser Azure Cloud Shell ou une installation locale de l’interface de ligne de commande Azure pour exécuter les exemples de commandes de cet article. Si vous souhaitez l’utiliser en local, la version 2.0.74 ou une version ultérieure est requise. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

La création d’une stratégie de rétention pour les manifestes non étiquetés constitue actuellement une fonctionnalité d’évaluation des registres de conteneurs Premium. Pour plus d’informations sur les niveaux de service de registre, consultez Niveaux de service Azure Container Registry.

Avertissement

Définissez une stratégie de conservation avec soin : les données d'image supprimées sont UNRECOVERABLE. Si vous disposez de systèmes qui tirent (pull) des images en fonction du code de hachage du manifeste (et non en fonction du nom de l’image), vous ne devez pas définir de stratégie de rétention pour les manifestes non balisés. La suppression des images sans balise va empêcher ces systèmes de tirer les images à partir du registre. Au lieu de tirer en fonction du manifeste, envisagez d’adopter un schéma d’étiquetage unique (il s’agit là d’une bonne pratique).

À propos de la stratégie de conservation

Azure Container Registry fait référence au décompte des manifestes dans le registre. Lorsqu’un manifeste n’est pas balise, il vérifie la stratégie de conservation. Si une stratégie de conservation est activée, une opération de suppression de manifeste est mise en file d’attente, avec une date spécifique, en fonction du nombre de jours défini dans la stratégie.

Un travail de gestion de file d’attente distinct traite en permanence les messages et effectue la mise à l’échelle requise. En guise d’exemple, supposons que vous avez supprimé les balisés de deux manifestes, à 1 heure d’intervalle, dans un registre avec une stratégie de conservation de 30 jours. Deux messages sont mis en file d’attente. Ensuite, 30 jours plus tard, à environ 1 heure d’intervalle, les messages sont récupérés de la file d’attente et traités, en supposant que la stratégie était toujours en vigueur.

Si l’attribut delete-enabled d’un manifeste non balisé possède la valeur false, le manifeste est verrouillé et n’est pas supprimé par la stratégie.

Important

La stratégie de rétention ne s’applique qu’aux manifestes non balisés dont le timestamp est postérieur à l’activation de la stratégie. Les manifestes non étiquetés du registre qui présentent des timestamps antérieurs ne sont pas soumis à la stratégie. Pour obtenir d’autres options de suppression des données d’image, consultez les exemples de l’article Suppression d’images conteneur dans Azure Container Registry.

Définir une stratégie de rétention – CLI

L’exemple suivant montre comment utiliser Azure CLI pour définir une stratégie de rétention pour des manifestes non balisés dans un registre.

Activer une stratégie de rétention

Par défaut, aucune stratégie de rétention n’est définie dans un registre de conteneurs. Pour définir ou mettre à jour une stratégie de rétention, exécutez la commande az acr config retention update dans l’interface de ligne de commande Azure. Vous pouvez spécifier un nombre de jours compris entre 0 et 365 pour la rétention des manifestes non balisés. Si vous ne spécifiez pas de nombre de jours, la commande définit une valeur par défaut de 7 jours. Après la période de rétention, tous les manifestes non balisés dans le registre sont automatiquement supprimés.

L'exemple suivant définit une politique de conservation de 30 jours pour les manifestes non balisés dans le registre myregistry :

az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests

L’exemple suivant définit une stratégie pour supprimer du registre tout manifeste non balisé. Créez cette stratégie en définissant une période de conservation de 0 jour.

az acr config retention update \
  --registry myregistry --status enabled \
  --days 0 --type UntaggedManifests

Valider une stratégie de conservation

Si vous activez la stratégie précédente avec une période de conservation de 0 jour, vous pouvez rapidement vérifier que les manifestes non balisés sont supprimés :

  1. Envoyez une image de test hello-world:latest à votre registre ou remplacez une autre image de test de votre choix.
  2. Supprimez l'étiquette de l'image hello-world:latest, par exemple, à l'aide de la commande az acr repository untag. Le manifeste non balisé reste dans le registre.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Au bout de quelques secondes, le manifeste non balisé est supprimé. Vous pouvez vérifier la suppression en dressant la liste des manifestes dans le référentiel, par exemple, à l’aide de la commande az acr manifest list-metadata. Si l’image de test était la seule dans le référentiel, le référentiel lui-même est supprimé.

Gestion d’une stratégie de rétention

Pour afficher la stratégie de rétention définie dans un registre, exécutez la commande az acr config retention show :

az acr config retention show --registry myregistry

Pour désactiver une stratégie de rétention dans un registre, exécutez la commande az acr config retention update et définissez --status disabled :

az acr config retention update \
  --registry myregistry --status disabled \
  --type UntaggedManifests

Définir une stratégie de rétention – Portail

Vous pouvez également définir une stratégie de rétention du registre via le Portail Microsoft Azure.

Activer une stratégie de rétention

  1. Accédez à votre registre de conteneurs Azure. Sous Stratégies, sélectionnez Rétention (préversion).
  2. Dans État, sélectionnez Activé.
  3. Sélectionnez un nombre de jours compris entre 0 et 365 pour la rétention des manifestes non balisés. Sélectionnez Enregistrer.

Activer une stratégie de rétention dans le Portail Microsoft Azure

Désactiver une stratégie de rétention

  1. Accédez à votre registre de conteneurs Azure. Sous Stratégies, sélectionnez Rétention (préversion).
  2. Dans État, sélectionnez Désactivé. Sélectionnez Enregistrer.

Étapes suivantes