¿Cómo soluciono los errores de comprobación de estado del contenedor para las tareas de Amazon ECS?

4 minutos de lectura
0

Mi tarea de Amazon Elastic Container Service (Amazon ECS) no supera la comprobación del estado del contenedor.

Descripción breve

Si aparece el siguiente error, significa que los contenedores de Amazon ECS de la tarea realizan comprobaciones de estado que tu servicio no puede superar:

(service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks

Resolución

Para solucionar los errores de comprobación de estado de los contenedores de Amazon ECS, sigue estos pasos:

  • Antes de aprovisionar a Amazon ECS, prueba localmente el contenedor para asegurarte de que supere las comprobaciones de estado del contenedor.
  • Confirma que el comando que pasas al contenedor es correcto y que utilizas la sintaxis correcta para las tareas de Amazon ECS.
  • Deja el tiempo suficiente al contenedor para que se inicie.
  • Si la tarea de Amazon ECS continúa ejecutándose durante un periodo prolongado, comprueba los registros de la aplicación y los registros de Amazon CloudWatch.

Prueba localmente el contenedor para asegurarte de que supere las comprobaciones de estado del contenedor.

Antes de aprovisionar el contenedor a Amazon ECS, asegúrate de que funciona según lo previsto y de que puedes superar la comprobación de estado del contenedor especificada. Prueba el contenedor con la configuración HEALTHCHECK de Dockerfile en el sitio web de Docker. Confirma que el contenedor pasa la verificación de estado definida en el Dockerfile. A continuación, especifica la configuración de la comprobación de estado en la definición de la tarea para permitir que el agente del contenedor de Amazon ECS supervise y notifique la comprobación de estado.

**Nota:**Amazon ECS no supervisa las comprobaciones de estado de Docker que están integradas en una imagen de contenedor y no están especificadas en la definición del contenedor. Los parámetros de comprobación de estado que se especifican en una definición de contenedor anulan las comprobaciones de estado de Docker que existen en la imagen del contenedor.

Confirmar que utilizas la sintaxis correcta para las tareas de Amazon ECS

Nota: Si recibes errores al ejecutar la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrate de utilizar la versión más reciente de la AWS CLI.

Utiliza los comandos y la sintaxis correctos para las tareas de Amazon ECS. Si utilizas el panel JSON de la Consola de administración de AWS, la AWS CLI o las API, incluye la lista de comandos entre corchetes.

Ejemplo de comando:

["CMD-SHELL", "curl -f http://localhost/ || exit 1"]

Si usas la Consola de administración de AWS para editar la tarea de ECS, no tienes que incluir los corchetes:

CMD-SHELL, Curl -f http://localhost/ || exit 1

No separes el comando de la comprobación de estado con comillas dobles, como ["CMD-SHELL", "healthcheck.sh", "||", "exit 1"]. En su lugar, utiliza la siguiente sintaxis de comandos:

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

Deja el tiempo suficiente al contenedor para que se inicie.

Si el contenedor tarda mucho tiempo en iniciarse, es posible que no supere la comprobación de estado del contenedor. EstablecestartPeriod en el parámetro de definición de contenedor avanzada. De este modo, el contenedor de Amazon ECS tendrá tiempo de arrancar antes de que se incluya cualquier comprobación de estado con error en el número máximo de reintentos.

En el caso de las tareas que se ejecutan durante mucho tiempo, consulta los registros de la aplicación y los registros de Amazon CloudWatch

Si el contenedor de Amazon ECS se ejecuta durante mucho tiempo y no supera la comprobación de estado del contenedor, comprueba los registros de la aplicación. Si la tarea de Amazon ECS utiliza el controlador de registro awslogs, comprueba los registros de la aplicación en CloudWatch.

Nota: AWS Fargate es un servicio administrado. Por lo tanto, no puedes acceder a la infraestructura subyacente. Para solucionar este problema, inicia las tareas de Amazon ECS en Amazon Elastic Compute Cloud (Amazon EC2). A continuación, utiliza SSH para conectarte a las instancias de Amazon EC2. También puedes usar Amazon ECS Exec para interactuar directamente con los contenedores de ECS.

Información relacionada

¿Cómo puedo ejecutar mis tareas de Amazon ECS con el tipo de lanzamiento de Amazon EC2 para superar la comprobación de estado del equilibrador de carga de aplicación en Amazon ECS?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año