Quero solucionar uma falha na tarefa do Amazon Elastic Container Service (Amazon ECS) em um cluster do ECS.
Breve descrição
Seus contêineres podem ser encerrados devido a problemas de imagem, problemas de aplicações ou restrições de recursos entre outros.
Para uma falha de tarefa devido a problemas de imagem, consulte Como faço para resolver o erro “A Imagem não existe” quando minhas tarefas não se iniciam no cluster do Amazon ECS?
Para tarefas do AWS Fargate que são interrompidas inesperadamente, consulte as mensagens de erro de tarefas interrompidas do Amazon ECS.
Para analisar outros problemas que fazem com que uma tarefa do ECS não seja iniciada, você pode usar o runbook de automação AWSSupport-TroubleshootECSTaskFailedToStart do AWS Systems Manager.
Você também pode solucionar problemas manualmente em seu cluster do Amazon ECS.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Execute o runbook para solucionar problemas do seu cluster
Antes de iniciar o runbook AWSSupport-TroubleshootECSTaskFailedToStart, certifique-se de que seu usuário ou perfil do IAM tenha as permissões necessárias. Para obter mais informações, consulte a seção Permissões necessárias do IAM de AWSSupport-TroubleshootECSTaskFailedToStart.
Para iniciar o runbook, conclua as seguintes etapas:
- Abra o documento AWSSupport-TroubleshootECSTaskFailedToStart no console do AWS Systems Manager.
- Selecione Executar automação.
- Insira os seguintes valores para os parâmetros de entrada:
(Opcional) AutomationAssumeRole: O ARN do perfil do IAM que permite que a automação realize ações para você. Se você não especificar um perfil, a automação usará as permissões do usuário que inicia o runbook.
ClusterName: O nome do cluster do ECS em que a tarefa falhou ao iniciar.
(Opcional) CloudwatchRetentionPeriod: O período de retenção, em dias, para armazenar os logs de funções do AWS Lambda no Amazon CloudWatch Logs.
Observação: Defina esse valor quando a análise determinar que você deve testar a conectividade de rede. O valor padrão é 30 dias. Outros valores válidos são 1, 3, 5, 7, 14, 60 e 90.
TaskId: O ID da tarefa que falhou mais recentemente.
- Selecione Executar.
Observação: Para obter mais informações sobre as etapas do runbook, consulte a seção Etapas do documento de AWSSupport-TroubleshootECSTaskFailedToStart.
- Analise os resultados detalhados na seção Saídas. A saída inclui as seguintes informações:
TaskFailureReason: Uma análise do motivo da falha final da tarefa.
ExecutionLogs: Os logs de saída de cada etapa que o runbook realizou.
ENI_Deletion_Message.Status: O status da exclusão da interface de rede elástica da nuvem privada virtual (VPC) do Lambda quando o runbook cria uma função do Lambda para testar a conectividade da rede.
Observação: Se ENI_Deletion_Message mostrar que a interface de rede não foi excluída, exclua manualmente a interface de rede.
Solucione problemas manualmente em seu cluster do ECS
Verifique as informações de diagnóstico no log de eventos do serviço. Além disso, use o console do Amazon ECS ou a AWS CLI para verificar se há erros nas tarefas interrompidas.
Para resolver problemas de restrição de memória, consulte Como posso alocar memória para tarefas no Amazon ECS?
Se você já tiver um driver de log configurado, verifique se há problemas nos logs da aplicação. Por exemplo, se você configurou o driver de log awslogs na sua definição de tarefa, visualize os logs do contêiner awslogs no Amazon CloudWatch. Ou use as opções de configuração de log na definição da tarefa para enviar logs para um driver de log compatível com o contêiner.
Tarefas do ECS que não são do Fargate
Se você usar o driver de log de arquivos JSON padrão com o tipo de inicialização do Amazon Elastic Compute Cloud (Amazon EC2), inicie o seguinte comando de logs do docker:
docker logs dc7240fe892a
Observação: Substitua dc7240fe892a pelo ID do contêiner.
O comando anterior verifica os logs do Docker do contêiner em sua instância de contêiner do ECS. Para obter mais informações sobre o driver de log JSON, consulte Driver de log de arquivos JSON no site do Docker.
Tarefas do Fargate
O driver de log awslogs passa os logs do Docker para o CloudWatch Logs. Os logs mostram os fluxos STDOUT e STDERR I/O das saídas do comando.
Informações relacionadas
Fluxos de trabalho de automação do AWS Support (SAW)
Configurar a automação
Execute uma operação automatizada com a tecnologia Systems Manager Automation