Ir para o conteúdo

Como solucionar problemas na verificação de integridade de contêiner em tarefas do Amazon ECS?

3 minuto de leitura
0

Minha tarefa do Amazon Elastic Container Service (Amazon ECS) falha na verificação de integridade do contêiner.

Breve descrição

Se os contêineres do Amazon ECS em sua tarefa usam verificações de integridade que seu serviço não pode passar, você recebe o seguinte erro:

“(service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) apresentou falha nas verificações de integridade de contêiner.”

Resolução

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.

Teste localmente o contêiner para garantir que ele passe na verificação de integridade do contêiner

Antes de provisionar seu contêiner para o Amazon ECS, certifique-se de que ele funcione conforme o esperado. Teste seu contêiner com HEALTHCHECK no site do Docker Docs. Confirme se o contêiner passa pela verificação de integridade no Dockerfile. Em seguida, especifique a configuração da verificação de integridade na definição da tarefa para permitir que o atendente de contêiner do Amazon ECS monitore e relate a verificação de integridade.

Observação: o Amazon ECS não monitora as verificações de integridade do Docker que estão incorporadas em uma imagem de contêiner e não estão especificadas na definição do contêiner. Os parâmetros de verificação de integridade especificados em uma definição de contêiner substituem as verificações de integridade do Docker que existem na imagem do contêiner.

Confirme se você usa a sintaxe correta para suas tarefas do Amazon ECS

Confirme se o comando que você passa para o contêiner está preciso e se você usa a sintaxe correta para seus comandos. Não separe o comando de verificação de integridade com aspas duplas, como ["CMD-SHELL", "healthcheck.sh", "||", "exit 1"]. Em vez disso, use a seguinte sintaxe de comando:

["CMD-SHELL", "healthcheck.sh || exit 1"]

Dê ao seu contêiner tempo suficiente para iniciar

Se seu contêiner levar muito tempo para ser iniciado, ele poderá apresentar falha na verificação de integridade do contêiner. Defina o startPeriod no parâmetro avançado de definição de contêiner de acordo com suas necessidades de configuração.

Para tarefas que estão sendo executadas há muito tempo, verifique os logs da sua aplicação

Se seu contêiner estiver em execução por muito tempo e falhar na verificação de integridade do contêiner, verifique os logs da sua aplicação. Se sua tarefa usa o driver de log awslogs, verifique os logs da sua aplicação no Amazon CloudWatch.

Observação: O AWS Fargate é um serviço gerenciado, então não é possível acessar a infraestrutura subjacente. Para solucionar esse problema do Fargate, inicialize suas tarefas do Amazon ECS no Amazon Elastic Compute Cloud (Amazon EC2). Em seguida, use o SSH para se conectar às suas instâncias do Amazon EC2. Também é possível usar o ECS Exec para interagir diretamente com seus contêineres do Amazon ECS.

Informações relacionadas

Como fazer com que minhas tarefas do Amazon ECS que usam o tipo de inicialização do Amazon EC2 passem na verificação de integridade do Application Load Balancer?

AWS OFICIALAtualizada há 10 meses