Definir uma 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 é ativada, os manifestos não marcados no Registro são excluídos automaticamente após alguns dias definidos. Esse recurso impede que o registro seja preenchido com artefatos que não são necessários e ajuda você a economizar nos 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 artigo. Se você quiser usá-lo localmente, a versão 2.0.74 ou posterior é necessária. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Uma política de retenção para manifestos não marcados é atualmente um recurso de visualização dos registros de contêiner Premium . Para obter informações sobre 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 cuidados - os dados de imagem excluídos são irrecuperáveis. Se você tiver sistemas que extraem imagens por resumo de manifesto (em vez de nome de imagem), não deve definir uma política de retenção para manifestos não marcados. A exclusão de imagens não marcadas impedirá que esses sistemas extraiam as imagens do seu registro. Em vez de puxar por manifesto, considere adotar um esquema de marcação exclusivo, uma prática recomendada recomendada.

Sobre a política de retenção

O Registro de Contêiner do Azure faz a contagem de referência para manifestos no Registro. Quando um manifesto é desmarcado, ele verifica a política de retenção. Se uma política de retenção estiver 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 constantemente as mensagens, dimensionando conforme necessário. Como exemplo, suponha que você desmarcou dois manifestos, com 1 hora de intervalo, 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 intervalo, as mensagens seriam recuperadas da fila e processadas, supondo que a política ainda estivesse em vigor.

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

Importante

A política de retenção aplica-se apenas a manifestos não marcados com carimbos de data/hora depois que a política é habilitada. Manifestos não marcados no Registro com carimbos de data/hora anteriores não estão sujeitos à política. Para obter 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. Você pode especificar um número de dias entre 0 e 365 para manter os manifestos não marcados. Se você não especificar um número 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 qualquer manifesto no Registro assim que ele for desmarcado. Crie esta 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 seu registro ou substitua outra imagem de teste de sua escolha.
  2. Desmarque a hello-world:latest imagem, 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. Dentro de alguns segundos, o manifesto não marcado é excluído. Você pode verificar a exclusão listando manifestos no repositório, por exemplo, usando o comando az acr manifest list-metadata . Se a imagem de teste era a única no repositório, o próprio repositório é 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 desativar 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

Você também pode 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 (Pré-visualização).
  2. Em Status, selecione Habilitado.
  3. Selecione um número de dias entre 0 e 365 para reter os manifestos não marcados. Selecione Guardar.

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

Desativar uma política de retenção

  1. Navegue até o registro de contêiner do Azure. Em Políticas, selecione Retenção (Pré-visualização).
  2. Em Status, selecione Desativado. Selecione Guardar.

Próximos passos