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á.
Políticas de ciclo de vida
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 é um conjunto de uma ou mais regras em que cada regra define uma ação do Amazon ECR. Isso permite a automação da limpeza de imagens de suas imagens de contêiner por imagens com validade prestes a expirar baseadas em idade ou número. Você deve esperar que as imagens expirem dentro de 24 horas após atenderem aos critérios de expiração de acordo com sua política de ciclo de vida. 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 ter mais informações, consulte Registrar 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 ter mais informações, consulte Registrar ações do Amazon ECR com AWS CloudTrail.
nota
Se você estiver usando a replicação do Amazon ECR para fazer cópias de um repositório em diferentes regiões ou contas, tenha em mente que uma política de ciclo de vida pode realizar uma ação apenas em repositórios na região em que foi criada. Portanto, se você tiver a replicação ativada, convém criar uma política de ciclo de vida em cada região e conta para a qual estiver replicando os repositórios.
O diagrama a seguir mostra um fluxo de trabalho da política de ciclo de vida.
-
Crie uma ou mais regras de teste.
-
Salve as regras de teste e execute a visualização.
-
O avaliador de políticas de ciclo de vida percorre todas as regras e marca as imagens que cada regra afeta.
-
Em seguida, o avaliador de políticas de ciclo de vida aplica as regras, com base na prioridade da regra, e exibe quais imagens no repositório estão definidas para expirar a validade.
-
Revise os resultados do teste, certificando-se de que as imagens marcadas para expirar a validade são as que você pretendia.
-
Aplique as regras de teste como política de ciclo de vida para o repositório.
-
Depois que a política de ciclo de vida é criada, você deve esperar que as imagens expirem 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 ver exemplos, consulte Exemplos de políticas de ciclo de vida.
-
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 por exatamente uma ou nenhuma regra.
-
Uma imagem que corresponde aos requisitos de marcação de uma regra não pode ser expirada por uma regra com uma prioridade inferior.
-
As regras nunca podem marcar imagens marcadas por regras de maior prioridade, mas ainda podem identificá-las como se não tivessem expirado.
-
O conjunto de regras deve conter um conjunto exclusivo de prefixos de tags.
-
Somente uma regra é permitida para selecionar imagens não marcadas.
-
Se uma imagem for referenciada por uma lista de manifestos, ela não poderá expirar sem que a lista de manifestos seja excluída primeiro.
-
A expiração é sempre solicitada por
pushed_at_time
e expira sempre as imagens mais antigas antes das mais novas. -
Uma regra de política de ciclo de vida pode especificar um
tagPatternList
outagPrefixList
, 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. -
Os parâmetros
tagPatternList
outagPrefixList
apenas poderão ser usados se otagStatus
fortagged
. -
Ao usar
tagPatternList
, uma imagem será correspondida com êxito se corresponder ao filtro de curinga. Por exemplo, se um filtro deprod*
for aplicado, ele corresponderá aos repositórios cujo nome começa comprod
, comoprod
,prod1
ouproduction-team1
. Da mesma maneira, se um filtro de*prod*
for aplicado, ele corresponderá aos repositórios cujo nome contenhaprod
, comorepo-production
ouprod-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 todas as tags no valortagPrefixList
corresponderem a qualquer tag da imagem. -
O parâmetro
countUnit
só será usado secountType
forsinceImagePushed
. -
Com
countType = imageCountMoreThan
, as imagens são classificadas das mais novas para as mais antigas com base empushed_at_time
e, em seguida, todas as imagens acima da contagem especificada são expiradas. -
Com
countType = sinceImagePushed
, todas as imagens que tiverem o valor depushed_at_time
mais antigo do que o número de dias especificado com base emcountNumber
serão expiradas.
Modelo de política do ciclo de vida
O conteúdo da sua política de ciclo de vida é avaliado antes de ser associado a um repositório. Veja a seguir o modelo de sintaxe JSON de política de ciclo de vida. Para ver exemplos de política do ciclo de vida, consulte Exemplos de políticas de ciclo de vida.
{
"rules": [
{
"rulePriority": integer
,
"description": "string
",
"selection": {
"tagStatus": "tagged
"|"untagged
"|"any
",
"tagPatternList": list<string>
,
"tagPrefixList": list<string>
,
"countType": "imageCountMoreThan
"|"sinceImagePushed
",
"countUnit": "string
",
"countNumber": integer
},
"action": {
"type": "expire"
}
}
]
}
Parâmetros de política do ciclo de vida
As políticas de ciclo de vida são divididas nas partes a seguir:
Tópicos
Prioridade das regras
rulePriority
-
Tipo: inteiro
Obrigatório: sim
Define a ordem em que as regras são avaliadas, da menor para a maior. Uma regra de política de ciclo de vida com prioridade
1
será aplicada em primeiro lugar, uma regra com prioridade2
será a próxima, e assim por diante. Ao adicionar regras a uma política de ciclo de vida, você deve dar a elas um valor exclusivo pararulePriority
. Os valores não precisam ser sequenciais entre regras em uma política. Uma regra com um valortagStatus
deany
deve ter o valor o mais alto pararulePriority
e ser avaliada por último.
Descrição
description
-
Tipo: string
Obrigatório: não
(Opcional) Descreve a finalidade de uma regra em uma política de ciclo de vida.
Status da tag
tagStatus
-
Tipo: string
Obrigatório: sim
Determina se a regra da política de ciclo de vida que você está adicionando especifica uma tag para uma imagem. As opções aceitáveis são
tagged
,untagged
ouany
. Se você especificarany
, todas as regras serão avaliadas segundo a regra Se você especificartagged
, você também deverá especificar um valortagPrefixList
. Se você especificaruntagged
, você deverá omitirtagPrefixList
.
Lista de padrões de etiquetas
tagPatternList
-
Tipo: list[string]
Obrigatório: sim, se
tagStatus
estiver definido como marcado e setagPrefixList
não for especificadoAo criar uma política de ciclo de vida para imagens marcadas, uma prática recomendada é usar um
tagPatternList
para especificar as etiquetas que expirarão. Você especifica uma lista separada por vírgulas de padrões de etiquetas de imagem que podem conter curingas (*
) sobre os quais agir com sua política de ciclo de vida. Por exemplo, se suas imagens forem marcadas comoprod
,prod1
,prod2
e assim por diante, você deve usar a lista de padrões de etiquetasprod*
para especificá-las. Se você especificar várias tags, apenas imagens com todas as tags especificadas serão selecionadas.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.
Lista de prefixos de tags
tagPrefixList
-
Tipo: list[string]
Obrigatório: sim, se
tagStatus
estiver definido como marcado e setagPatternList
não for especificadoUsado somente se você tiver especificado
"tagStatus": "tagged"
e não estiver especificandotagPatternList
. Você deve especificar uma lista separada por vírgulas de prefixos de tags de imagem na qual agir com política de ciclo de vida. Por exemplo, se suas imagens forem marcadas comoprod
,prod1
,prod2
e assim por diante, você deve usar o prefixo de tagprod
para especificá-las. Se você especificar várias tags, apenas imagens com todas as tags especificadas serão selecionadas.
Tipo de contagem
countType
-
Tipo: sequência
Obrigatório: sim
Especifique um tipo de contagem a ser aplicado às imagens.
Se
countType
for definido comoimageCountMoreThan
, você também especificarácountNumber
para criar uma regra que define um limite no número de imagens que existem no repositório. SecountType
for definido comosinceImagePushed
, você também especificarácountUnit
ecountNumber
para especificar um limite de tempo nas imagens que existem no repositório.
Unidade de contagem
countUnit
-
Tipo: sequência
Exigido: sim, somente se
countType
for definido comosinceImagePushed
Especifique uma unidade de contagem de
days
para indicar como a unidade de tempo, além decountNumber
, que é o número de dias.Isso só deverá ser especificado quando
countType
forsinceImagePushed
; um erro ocorrerá se você especificar uma unidade de contagem quandocountType
for qualquer outro valor.
Contagem numérica
countNumber
-
Tipo: inteiro
Obrigatório: sim
Especifique um número de contagem. Os valores aceitáveis são inteiros positivos (
0
não é um valor aceito).Se o
countType
usado forimageCountMoreThan
, o valor será o número máximo de imagens que você deseja manter no repositório. Se ocountType
usado forsinceImagePushed
, o valor será o limite de idade máximo das imagens.
Ação
type
-
Tipo: string
Obrigatório: sim
Especifique um tipo de ação. O valor suportado é
expire
.