Share via


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

Azure Container Registry dá-lhe a opção de definir uma política de retenção para manifestos de imagem armazenados que não têm etiquetas associadas (manifestos não marcados). Quando uma política de retenção está ativada, os manifestos não marcados no registo são eliminados automaticamente após um número de dias definido. Esta funcionalidade impede que o registo se preencha com artefactos que não são necessários e ajuda-o a poupar nos custos de armazenamento.

Pode utilizar a Cloud Shell do Azure ou uma instalação local da CLI do Azure para executar os exemplos de comandos neste artigo. Se quiser utilizá-lo localmente, é necessária a versão 2.0.74 ou posterior. 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 uma funcionalidade de pré-visualização dos registos de contentores Premium . Para obter informações sobre os escalões de serviço de registo, veja Azure Container Registry escalões de serviço.

Aviso

Definir uma política de retenção com dados de imagem eliminados por cuidado é IRRECUPERÁVEL. Se tiver sistemas que extraem imagens por resumo do manifesto (em oposição ao nome da imagem), não deve definir uma política de retenção para manifestos não marcados. A eliminação de imagens não selecionadas impedirá esses sistemas de extrair as imagens do seu registo. Em vez de solicitar por manifesto, considere adotar um esquema de etiquetagem exclusivo , uma melhor prática recomendada.

Acerca da política de retenção

Azure Container Registry faz referência à contagem de manifestos no registo. Quando um manifesto não é marcado, verifica a política de retenção. Se uma política de retenção estiver ativada, é colocada uma operação de eliminação de manifestos em fila, com uma data específica, de acordo com o número de dias definido na política.

Uma tarefa de gestão de filas separada processa constantemente mensagens, dimensionando conforme necessário. Por exemplo, suponha que anulou dois manifestos, com uma hora de diferença, num registo com uma política de retenção de 30 dias. Duas mensagens seriam em fila de colocação em fila. Depois, 30 dias depois, com aproximadamente 1 hora de diferença, as mensagens seriam obtidas da fila e processadas, assumindo que a política ainda estava em vigor.

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

Importante

A política de retenção aplica-se apenas a manifestos não marcados com carimbos de data/hora após a política estar ativada. Os manifestos não marcados no registo com carimbos de data/hora anteriores não estão sujeitos à política. Para outras opções para eliminar dados de imagem, veja exemplos em Eliminar imagens de contentor no Azure Container Registry.

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

O exemplo seguinte mostra como utilizar a CLI do Azure para definir uma política de retenção para manifestos não marcados num registo.

Ativar uma política de retenção

Por predefinição, nenhuma política de retenção está definida num registo de contentor. Para definir ou atualizar uma política de retenção, execute o comando az acr config retention update na CLI do Azure. Pode especificar um número de dias entre 0 e 365 para manter os manifestos não marcados. Se não especificar um número de dias, o comando define uma predefinição de 7 dias. Após o período de retenção, todos os manifestos não marcados no registo são eliminados automaticamente.

O exemplo seguinte define uma política de retenção de 30 dias para manifestos não marcados na myregistry do registo:

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

O exemplo seguinte define uma política para eliminar qualquer manifesto no registo assim que não estiver marcado. Crie esta política ao definir 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 ativar a política anterior com um período de retenção de 0 dias, pode verificar rapidamente se os manifestos não marcados são eliminados:

  1. Envie uma imagem hello-world:latest de teste para o seu registo ou substitua outra imagem de teste à sua escolha.
  2. Desmarcar a hello-world:latest imagem, por exemplo, com o comando az acr repository untag . O manifesto não marcado permanece no registo.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Dentro de alguns segundos, o manifesto não marcado é eliminado. Pode verificar a eliminação ao listar manifestos no repositório, por exemplo, com o comando az acr manifest list-metadata . Se a imagem de teste for a única no repositório, o repositório em si é eliminado.

Gerir uma política de retenção

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

az acr config retention show --registry myregistry

Para desativar uma política de retenção num registo, 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 pode definir a política de retenção de um registo no portal do Azure.

Ativar uma política de retenção

  1. Navegue para o registo de contentores do Azure. Em Políticas, selecione Retenção (Pré-visualização).
  2. Em Estado, selecione Ativado.
  3. Selecione um número de dias entre 0 e 365 para manter os manifestos não marcados. Selecione Guardar.

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

Desativar uma política de retenção

  1. Navegue para o registo de contentores do Azure. Em Políticas, selecione Retenção (Pré-visualização).
  2. Em Estado, selecione Desativado. Selecione Guardar.

Passos seguintes