Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Solucione problemas de uma política de ciclo de vida com status de FALHA
Se uma política de ciclo de vida tiver um status de FALHA, execute o seguinte comando get-lifecycle-execution da AWS CLI para verificar o motivo:
aws imagebuilder get-lifecycle-execution --example-lifecycle-execution-id --region example-region
Observação: substitua example-lifecycle-execution-id pelo ID de execução da política de ciclo de vida e example-region pela sua região da AWS.
Exemplo de saída:
{ "state": {
"status": "FAILED",
"reason": "Lifecycle execution failed. Reason: One or more resources failed."
}
Para permitir que o Image Builder execute políticas de ciclo de vida, você deve usar o perfil padrão EC2ImageBuilderLifecycleExecutionRole. Ou crie um perfil personalizado do AWS Identity and Access Management (AWS IAM) para o gerenciamento do ciclo de vida do Image Builder. Se você usar um perfil que não tenha a configuração necessária, a política de ciclo de vida falhará.
Se você usar uma imagem de contêiner do Amazon Elastic Container Registry (Amazon ECR), deverá adicionar a tag LifecycleExecutionAccess: EC2 Image Builder em seu repositório do Amazon ECR. Caso contrário, você receberá o seguinte Reason na saída do comando get-lifecycle-execution:
"ImageBuilder is not authorized to perform: ecr:BatchGetImage on resource"
Para marcar a imagem do contêiner do Amazon ECR, consulte Tag a resource from the AWS CLI (Marque um recurso da AWS CLI).
Solucione problemas em que a política de ciclo de vida foi concluída, mas as imagens ainda estão disponíveis
Mesmo quando a política de ciclo de vida for concluída, ainda poderá haver imagens de máquina da Amazon (AMIs), snapshots do Amazon Elastic Block Store (Amazon EBS) ou imagens de contêiner disponíveis.
Para solucionar esse problema, execute o seguinte comando get-lifecycle-policy para verificar os detalhes da política:
aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region
Observação: substitua example-policy-arn pelo nome do recurso da Amazon (ARN) da política de ciclo de vida e example-region pela sua região.
Em seguida, verifique as seguintes configurações:
Verifique as condições da regra da política de ciclo de vida
Você deve configurar o Image Builder para excluir recursos após a conclusão da política de ciclo de vida. Caso contrário, o Image Builder mantém as imagens.
Para verificar os recursos que a política de ciclo de vida exclui, consulte a seção policyDetails da saída do comando get-lifecycle-policy:
"policyDetails": [
{
"action": {
"type": "DELETE",
"includeResources": {
"amis": false,
"snapshots": false
}
Marque o campo IncludeResources para identificar as AMIs, os snapshots e as imagens de contêiner que a política de ciclo de vida marcou para exclusão ou retenção. Se estiverem marcados como false, o Image Builder retém o recurso depois de executar a política de ciclo de vida.
Para atualizar os recursos que o Image Builder exclui, atualize sua política de ciclo de vida e execute o seguinte comando update-lifecycle-policy:
aws imagebuilder update-lifecycle-policy --lifecycle-policy-arn example-policy-arn
Observação: substitua example-policy-arn pelo ARN da política de ciclo de vida atualizada.
Ou conclua as etapas a seguir para usar o console do Image Builder para atualizar sua política de ciclo de vida:
- Abra o console do Image Builder.
- Clique em Políticas de ciclo de vida.
- Selecione sua política.
- Clique em Regras e, em seguida, selecione Condições da regra.
- Para que o Image Builder exclua todos os recursos após a conclusão da política de ciclo de vida, selecione Cancelar registro de AMIs associadas e excluir seus snapshots e Excluir imagens de contêiner de ECR associadas.
Verifique se as regras da política de ciclo de vida retêm imagens
Na política de ciclo de vida Excluir regras, é possível selecionar Por idade ou Por contagem para reter imagens de fórmulas que as regras afetam.
Se você selecionar Por idade, reterá as imagens com base na idade delas. Ou é possível usar o Reter pelo menos uma imagem por fórmula para manter somente a imagem mais recente disponível. Se você selecionar Por contagem, pode usar Reter um número específico de imagens por fórmula para especificar quantas imagens reter.
Verifique se o Image Builder mantém imagens com base nos filtros AGE e COUNT.
No exemplo de saída de get-lifecycle-policy a seguir, o Image Builder exclui imagens somente após 3 anos:
"filter": {
"type": "AGE",
"value": 3,
"unit": "YEARS",
"retainAtLeast": 1
}
No exemplo de saída de get-lifecycle-policy a seguir, o Image Builder mantém 4 imagens:
"filter": {
"type": "COUNT",
"value": 4
}
Se necessário, atualize os filtros Por idade ou Por contagem da sua política de ciclo de vida.
Também é possível usar regras de exclusão para manter as imagens com base em tags. Verifique se o Image Builder mantém as imagens com base nas suas regras de exclusão.
No exemplo de saída de get-lifecycle-policy a seguir, o Image Builder mantém imagens com a tag example-tag:
"exclusionRules": {
"tagMap": {
"RetainImageTag": "example-tag"
}
}
Para excluir imagens com a política de ciclo de vida, remova a tag listada em RetainImageTag das AMIs, snapshots ou imagens de contêiner.
Verifique o escopo da política de ciclo de vida
As fórmulas e tags na guia Escopo devem corresponder aos recursos existentes para que a política de ciclo de vida as afete.
Se as tags e fórmulas não corresponderem a nenhum recurso, você receberá a seguinte saída ao executar o comando get-lifecycle-execution:
{ "lifecycleExecution": {
"lifecycleExecutionId": "lce-#",
"resourcesImpactedSummary": {
"hasImpactedResources": false
}
Se hasImpactedResources for false, a instância de runtime do Amazon Elastic Compute Cloud (Amazon EC2) não identificou nenhum recurso de imagem a ser removido. Para resolver esse problema, certifique-se de que o escopo da política de ciclo de vida inclua fórmulas e tags que afetem os recursos de imagem disponíveis.
Verifique se você marcou corretamente suas imagens do Image Builder
O Image Builder executa a política de ciclo de vida com base em tags somente para recursos de imagem do Image Builder. Não é possível usar tags de AMI ou de fórmula no escopo da política de ciclo de vida. Certifique-se de marcar corretamente os recursos do Image Builder com as tags que você especificou na guia Escopo da política de ciclo de vida.
Para marcar uma imagem existente, execute o seguinte comando tag-resource:
aws imagebuilder tag-resource --resource-arn example-image-resource-arn --tags KeyName1=Value1,KeyName2=Value2 --region example-region
Observação: substitua example-image-resource-arn pelo ARN da imagem, Value1 e Value2 pelas tags e example-region pela sua região. Você deve usar a AWS CLI para marcar os recursos de imagem do Image Builder.
Verifique sua configuração entre contas
Para permitir que o Image Builder realize ações do ciclo de vida em outra conta da AWS, crie um perfil do IAM para realizar ações de ciclo de vida na conta de destino.