Automatizar a limpeza de imagens usando políticas de ciclo de vida no Amazon ECR - Amazon ECR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Automatizar a limpeza de imagens usando políticas de ciclo de vida no Amazon ECR

As políticas de ciclo de vida do Amazon ECR fornecem mais controle sobre o gerenciamento de ciclo de vida de imagens em um repositório privado. Uma política de ciclo de vida contém uma ou mais regras, e cada regra define uma ação do Amazon ECR. Com base nos critérios de expiração da política de ciclo de vida, as imagens podem ser arquivadas ou expiradas com base nos critérios especificados na política de ciclo de vida em 24 horas. Quando o Amazon ECR executa uma ação com base em uma política de ciclo de vida, ela é capturada como um evento no AWS CloudTrail. Para obter mais informações, consulte Registrando ações do Amazon ECR com AWS CloudTrail.

Como funcionam as políticas de ciclo

Uma política de ciclo de vida consiste em uma ou mais regras que determinam quais imagens em um repositório devem perder a validade. Ao considerar o uso de políticas de ciclo de vida, é importante usar a visualização da política de ciclo de vida para confirmar de quais imagens a política de ciclo de vida expira a validade antes de aplicá-la a um repositório. Depois que uma política de ciclo de vida é aplicada a um repositório, você deve esperar que as imagens expirem dentro de 24 horas após atenderem aos critérios de expiração. Quando o Amazon ECR executa uma ação com base em uma política de ciclo de vida, ela é capturada como um evento no AWS CloudTrail. Para obter mais informações, consulte Registrando ações do Amazon ECR com AWS CloudTrail.

O diagrama a seguir mostra um fluxo de trabalho da política de ciclo de vida.

O diagrama mostra o processo de avaliação e aplicação de uma política de ciclo de vida.
  1. Crie uma ou mais regras de teste.

  2. Salve as regras de teste e execute a visualização.

  3. O avaliador de políticas de ciclo de vida percorre todas as regras e marca as imagens que cada regra afeta.

  4. O avaliador da política de ciclo de vida então aplica as regras, com base na prioridade da regra, e exibe quais imagens no repositório estão definidas para serem expiradas ou arquivadas. Um número de prioridade de regra mais baixo significa maior prioridade. Por exemplo, uma regra com prioridade 1 tem precedência sobre uma regra com prioridade 2.

  5. Analise os resultados do teste, garantindo que as imagens marcadas como expiradas ou arquivadas sejam as desejadas.

  6. Aplique as regras de teste como política de ciclo de vida para o repositório.

  7. Depois que a política de ciclo de vida for criada, você deve esperar que as imagens expirem ou sejam arquivadas dentro de 24 horas após atenderem aos critérios de expiração.

Regras de avaliação de política de ciclo de vida

O avaliador da política de ciclo de vida é responsável por analisar o JSON de texto simples da política de ciclo de vida, avaliando todas as regras e aplicando essas regras com base na prioridade da regra às imagens no repositório. A seguir encontra-se a explicação mais detalhada da lógica do avaliador de políticas de ciclo de vida. Para obter exemplos, consulte Exemplos de políticas de ciclo de vida no Amazon ECR.

  • Quando artefatos de referência estão presentes em um repositório, as políticas de ciclo de vida do Amazon ECR expiram automaticamente ou arquivam esses artefatos dentro de 24 horas após a exclusão ou arquivamento da imagem em questão.

  • Todas as regras são avaliadas ao mesmo tempo, independentemente da prioridade da regra. Depois que todas as regras são avaliadas, elas são aplicadas com base na prioridade da regra.

  • Uma imagem é expirada ou arquivada por exatamente uma ou zero regras.

  • Uma imagem que corresponda aos requisitos de marcação de uma regra não pode ser expirada ou arquivada por uma regra com prioridade mais baixa.

  • As regras nunca podem marcar imagens marcadas por regras de prioridade mais alta, mas ainda podem identificá-las como se não tivessem expirado ou arquivadas.

  • O conjunto de todas as regras que selecionam uma classe de armazenamento específica deve conter um conjunto exclusivo de prefixos.

  • Somente uma regra de seleção de uma classe de armazenamento específica pode selecionar imagens não marcadas.

  • Se uma imagem for referenciada por uma lista de manifestos, ela não poderá ser expirada ou arquivada sem que a lista de manifestos seja excluída ou arquivada primeiro.

  • A expiração é sempre ordenada por pushed_at_time ou transitioned_at_time e sempre expira as imagens mais antigas antes das mais novas. Se uma imagem foi arquivada e depois restaurada em algum momento no passado, a imagem last_activated_at é usada em vez depushed_at_time.

  • Uma regra de política de ciclo de vida pode especificar um tagPatternList ou tagPrefixList, mas não ambos. Porém, uma política de ciclo de vida pode conter várias regras em que regras diferentes usam listas de padrões e prefixos. Uma imagem será correspondida com êxito se todas as tags no valor tagPatternList ou tagPrefixList corresponderem a qualquer tag da imagem.

  • Os parâmetros tagPatternList ou tagPrefixList apenas poderão ser usados se o tagStatus for tagged.

  • Ao usar tagPatternList, uma imagem será correspondida com êxito se corresponder ao filtro de curinga. Por exemplo, se um filtro de prod* for aplicado, ele corresponderá às tags de imagem cujo nome comece com prod, como prod, prod1 ou production-team1. Da mesma maneira, se um filtro de *prod* for aplicado, ele corresponderá às tags de imagem cujo nome contenha prod, como repo-production ou prod-team.

    Importante

    Existe um limite máximo de quatro curingas (*) por string. Por exemplo, ["*test*1*2*3", "test*1*2*3*"] é válido, mas ["test*1*2*3*4*5*6"] é inválido.

  • Ao usar tagPrefixList, uma imagem será correspondida com êxito se todos os filtros de curinga no valor tagPrefixList corresponderem a qualquer tag da imagem.

  • O countUnit parâmetro só é usado se countType for sinceImagePushedsinceImagePulled, ousinceImageTransitioned.

  • ComcountType = imageCountMoreThan, as imagens são classificadas da mais nova para a mais antiga com base em pushed_at_time e, em seguida, todas as imagens maiores que a contagem especificada expiram ou são arquivadas.

  • ComcountType = sinceImagePushed, todas as imagens mais pushed_at_time antigas do que o número especificado de dias com base em countNumber expiram ou são arquivadas.

  • ComcountType = sinceImagePulled, todas as imagens mais last_recorded_pulltime antigas do que o número de dias especificado com base em countNumber são arquivadas. Se uma imagem nunca foi extraída, a imagem pushed_at_time é usada em vez dalast_recorded_pulltime. Se uma imagem foi arquivada e depois restaurada em algum momento no passado, mas nunca foi retirada desde que a imagem foi restaurada, a imagem last_activated_at é usada em vez dalast_recorded_pulltime.

  • ComcountType = sinceImageTransitioned, todas as imagens arquivadas last_archived_at mais antigas do que o número especificado de dias com base em countNumber expiram.

  • A expiração é sempre ordenada por pushed_at_time e sempre expira as imagens mais antigas antes das novas.