Definir um política de retenção para manifestos não marcados

O Registro de Contêiner do Azure oferece a opção de definir uma política de retenção para manifestos de imagem armazenados que não têm marcas associadas (manifestos não marcados). Quando uma política de retenção é habilitada, os manifestos não marcados no registro são excluídos automaticamente após uma quantidade de dias definida por você. Esse recurso impede que o registro se preencha com artefatos que não são necessários e ajuda você a economizar em custos de armazenamento.

Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure para executar os exemplos de comando neste arquivo. Se você quer usá-lo localmente, é necessária a versão 2.0.74 ou posterior. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Uma política de retenção para manifestos não marcados é atualmente uma versão prévia do recurso de registros de contêiner Premium. Para obter informações sobre as camadas de serviço do Registro, consulte Camadas de serviço do Registro de Contêiner do Azure.

Aviso

Defina uma política de retenção com cuidado; os dados da imagem excluída são IRRECUPERÁVEIS. Se você tiver sistemas que obtêm imagens pelo resumo do manifesto (em oposição ao nome da imagem), não defina uma política de retenção para manifestos não marcados. A exclusão de imagens não marcadas impedirá esses sistemas de puxar as imagens do seu registro. Em vez de extrair pelo manifesto, considere a adoção de um esquema de marcação exclusiva esquema, uma melhor prática recomendada.

Sobre a política de retenção

O Registro de Contêiner do Azure faz referência à contagem de manifestos no registro. Quando um manifesto é desmarcado, ele marca a política de retenção. Se uma política de retenção for habilitada, uma operação de exclusão de manifesto será enfileirada, com uma data específica, de acordo com o número de dias definido na política.

Um trabalho de gerenciamento de filas separado processa mensagens constantemente, dimensionando conforme necessário. Por exemplo, suponhamos que você não marcou dois manifestos, com 1 hora de diferença, em um registro com uma política de retenção de 30 dias. Duas mensagens seriam enfileiradas. Então, 30 dias depois, com aproximadamente 1 hora de diferença, as mensagens seriam recuperadas da fila e processadas, supondo que a política ainda estava em vigor.

Se o atributo delete-enabled de um manifesto não marcado for definido como false, o manifesto será bloqueado e não será excluído pela política.

Importante

No momento, a política de retenção se aplica somente a manifestos não marcados com carimbo de data/hora depois da política ser habilitada. Os manifestos não marcados no registro com os carimbos de data/hora anteriores não estão sujeitos à política. Para outras opções para excluir dados de imagem, consulte exemplos em Excluir imagens de contêiner no Registro de Contêiner do Azure.

Definir uma política de retenção - CLI

O exemplo a seguir mostra como usar a CLI do Azure para definir uma política de retenção para manifestos não marcados em um registro.

Habilitar uma política de retenção

Por padrão, nenhuma política de retenção é definida em um registro de contêiner. Para definir ou atualizar uma política de retenção, execute o comando az acr config retention update na CLI do Azure. Especifique uma quantidade de dias entre 0 e 365 para manter os manifestos não marcados. Se você não especificar uma quantidade de dias, o comando definirá um padrão de 7 dias. Após o período de retenção, todos os manifestos não marcados no registro são excluídos automaticamente.

O exemplo a seguir define uma política de retenção de 30 dias para manifestos não marcados no registro myregistry:

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

O exemplo a seguir define uma política para excluir todos os manifestos no registro assim que eles foram desmarcados. Crie essa política definindo um período de retenção de 0 dias.

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

Validar uma política de retenção

Se você habilitar a política anterior com um período de retenção de 0 dias, poderá verificar rapidamente se os manifestos não marcados são excluídos:

  1. Envie uma imagem de teste hello-world:latest para o registro ou substitua outra imagem de teste de sua escolha.
  2. Desmarque imagem hello-world:latest, por exemplo, usando o comando az acr repository untag. O manifesto não marcado permanece no registro.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Em alguns segundos, o manifesto não marcado será excluído. Verifique a exclusão listando os manifestos no repositório, por exemplo, usando o comando az acr manifest list-metadata. Se a imagem de teste foi a única no repositório, o repositório em si será excluído.

Gerenciar uma política de retenção

Para mostrar a política de retenção definida em um registro, execute o comando az acr config retention show:

az acr config retention show --registry myregistry

Para desabilitar uma política de retenção em um registro, execute o comando az acr config retention update e defina --status disabled:

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

Definir uma política de retenção - portal

Também é possível definir a política de retenção de um registro no Portal do Azure.

Habilitar uma política de retenção

  1. Navegue até o registro de contêiner do Azure. Em Políticas, selecione Retenção (versão prévia).
  2. Em Status, selecione Habilitado.
  3. Selecione uma quantidade de dias entre 0 e 365 para manter os manifestos não marcados. Clique em Salvar.

Habilitar uma política de retenção no portal do Azure

Desabilitar uma política de retenção

  1. Navegue até o registro de contêiner do Azure. Em Políticas, selecione Retenção (versão prévia).
  2. Em Status, selecione Desabilitado. Clique em Salvar.

Próximas etapas