Quando eu crio ou copio uma imagem de máquina da Amazon (AMI) (AMI) no Amazon Elastic Compute Cloud (Amazon EC2), recebo a mensagem de erro "Waiter ImageAvailable failed".
Resolução
Solucionar o erro "Max attempts exceeded"
Se o processo de criação ou cópia da AMI demorar mais do que o tempo limite padrão de 10 minutos, você receberá a seguinte mensagem de erro:
"Waiter ImageAvailable failed: Max attempts exceeded"
Para resolver esse problema, implemente um recuo exponencial com comportamento de repetição ou use o Amazon EventBridge para monitorar o processo de criação ou cópia da AMI.
Implementar um recuo exponencial
O recuo exponencial aumenta o tempo entre novas tentativas. Para implementar o recuo exponencial, use um script ou código que repita a operação com um atraso crescente entre cada tentativa.
O script de exemplo a seguir usa o AWS SDK para Python (Boto3) para definir um valor personalizado de WaiterConfig:
import boto3
from botocore.exceptions import WaiterError
client = boto3.client('ec2')
waiter = client.get_waiter('image_available')
try:
waiter.wait(
ImageIds=['ami-abcdefghxyz'],
WaiterConfig={
'Delay': 15,
'MaxAttempts': 50
}
)
except WaiterError as e:
# Handle the WaiterError exception
print(f"Error waiting for image availability: {e}")
# Add additional logic here to handle the error, such as retrying the operation or logging the issue
Observação: substitua ami-abcdefgh.xyz pelo ID da AMI, 15 pelo atraso entre as tentativas em segundos e 50 pelo número máximo de tentativas de repetição.
Usar o EventBridge para monitorar processos de AMI
Se você usa o EventBridge, não precisa monitorar ativamente seus processos de AMI. Em vez disso, crie uma regra do EventBridge que detecte quando os eventos CopyImage ou CreateImage são concluídos. Em seguida, configure uma ação para notificar você quando os processos forem concluídos. Por exemplo, use o Amazon Simple Notification Service (Amazon SNS) para enviar uma notificação por e-mail. Para mais informações, consulte Monitorar eventos da AMI usando o Amazon EventBridge.
Solucione o erro"An error occurred waiting for the image to become available"
Observação: se você receber erros 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.
É possível receber a seguinte mensagem de erro:
"An error occurred waiting for the image to become available: Waiter ImageAvailable failed: Waiter encountered a terminal failure state"
Esse erro ocorre pelos seguintes motivos:
- Você não tem as permissões necessárias do AWS Identity and Access Management (AWS IAM).
- Há problemas temporários com a infraestrutura subjacente da AWS.
- Você copiou ou criou uma AMI grande ou complexa.
Observação: AMIs grandes ou complexas que têm vários pacotes de software e personalizações podem exceder o tempo limite padrão de 10 minutos quando você as copia ou cria. Para resolver esse problema, consulte Troubleshoot the "Max attempts exceeded" error (Solucionar o erro Troubleshoot the "Max attempts exceeded").
Para solucionar esses erros, execute as seguintes ações.
Verificar as permissões do IAM
A política do IAM que você anexou ao perfil ou ao usuário que criou ou copiou a AMI deve ter as seguintes permissões necessárias:
- ec2:DescribeImages
- ec2:CreateImage
- ec2:CopyImage
Atualize a política do IAM para incluir as permissões anteriores e tente novamente o processo de criação ou cópia.
Verificar se há problemas com a infraestrutura da AWS
Para verificar o estado atual da AMI, execute o seguinte comando describe-images da AWS CLI:
aws ec2 describe-images --image-ids AMI_ID
Observação: substitua AMI_ID pelo ID da AMI.
A saída mostra o estado atual da AMI. Se o Estado for Pendente, o processo de criação ou cópia da AMI ainda estará em andamento. No entanto, se o Estado for Falha, pode haver problemas subjacentes de infraestrutura.
Problemas de alta carga ou hardware podem causar problemas temporários ao criar ou copiar AMIs. Nesse cenário, aguarde entre 5 e 10 minutos e tente novamente o processo de criação ou cópia. Para verificar se há problemas contínuos que afetam sua região da AWS ou seu serviço da AWS, verifique a integridade do serviço no AWS Health Dashboard.
Solucionar outros problemas
Se você ainda encontrar problemas, verifique o Histórico de Eventos do AWS CloudTrail para identificar problemas com os eventos CopyImage ou CreateImage. Verifique se há mensagens de erro, motivos de falha, Service Quotas excedidas e problemas de acesso. Para mais informações, consulte Registro em log das chamadas de API do Amazon EC2 usando o AWS CloudTrail.
Se não houver problemas contínuos e a operação falhar mesmo depois de você esperar entre 5 e 10 minutos para tentar novamente, abra um caso no AWS Support.