Consulta de errores de tareas detenidas de Amazon ECS - Amazon Elastic Container Service

Consulta de errores de tareas detenidas de Amazon ECS

Si tiene problemas para iniciar una tarea, es posible que la tarea se haya detenido debido a errores en la aplicación o configuración. Por ejemplo, ejecuta la tarea y esta muestra un estado PENDING y, a continuación, desaparece.

Cuando una tarea se detiene, están disponibles los siguientes campos:

  • stopCode: esta cadena indica la categoría de la tarea detenida. Los siguientes valores son válidos:

    • TaskFailedToStart: la tarea no pudo pasar al estado EN EJECUCIÓN.

    • EssentialContainerExited: se ha cerrado el proceso de un contenedor.

    • UserInitiated: un usuario detuvo la tarea.

    • ServiceSchedulerInitiated: el programador del servicio detuvo la tarea.

    • SpotInterruption: se ha cerrado o detenido una instancia de spot de EC2.

    • TerminationNotice: el programador del servicio recibió un aviso de terminación de Fargate.

  • stoppedReason: esto proporciona información adicional que puede utilizar para resolver el problema. Por ejemplo, “ResourceInitializationError: failed to initialize logging driver”.

Puede consultar los errores de tareas detenidas mediante cualquiera de los siguientes métodos:

  • Consola de Amazon ECS

  • AWS CLI

  • API de Amazon ECS

  • SDK de AWS

  • Registros de Amazon CloudWatch

    Si la definición de la tarea utiliza el controlador de registro awslogs, los registros de la aplicación se escriben en Registros de Amazon CloudWatch mientras aparezca la tarea detenida. Las tareas detenidas también se muestran en la pestaña Registros de la consola de Amazon ECS.

  • Amazon ECS también envía eventos de cambio de estado de la tarea a Amazon EventBridge. No puede ver los eventos en EventBridge. En su lugar, se crean reglas para enviar los eventos a otro almacenamiento persistente como Registros de Amazon CloudWatch. Puede utilizar el almacenamiento para ver los detalles de su tarea detenida después de que haya expirado de la vista en la consola de Amazon ECS. Para obtener más información, consulte Eventos de cambio de estado de tarea de Amazon ECS.

    Para ver un ejemplo de configuración de EventBridge para archivar eventos de Amazon ECS en Registros de Amazon CloudWatch, consulte ECS Stopped Tasks in CloudWatch Logs (ECS detuvo las tareas en los Registros de CloudWatch) en el sitio web de GitHub.

Si la tarea la creó un servicio de Amazon ECS, las acciones que Amazon ECS realiza para mantener el servicio se publican en los eventos del servicio. Puede ver los eventos en la AWS Management Console, la AWS CLI, los SDK de AWS, la API de Amazon ECS o las herramientas que utilizan los SDK y la API. Estos eventos incluyen que Amazon ECS detenga y reemplace una tarea porque los contenedores de la tarea han dejado de ejecutarse o no han superado demasiadas comprobaciones de estado de Elastic Load Balancing.

Si la tarea se ejecutó en una instancia de contenedor en Amazon EC2 o en equipos externos, también puede consultar los registros del tiempo de ejecución del contenedor y del agente de Amazon ECS. Estos registros se encuentran en la instancia de Amazon EC2 de host o en un equipo externo. Para obtener más información, consulte Ubicaciones de archivos de registro de Amazon ECS.

Consulta de errores de tareas detenidas

Console
AWS Management Console

Los siguientes pasos se pueden utilizar para comprobar si hay errores en las tareas detenidas a través de la nueva AWS Management Console.

  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En el panel de navegación, seleccione Clusters (Clústeres).

  3. En la página Clusters (Clústeres), elija el clúster.

  4. En la página de Cluster : name (Clúster: nombre), seleccione la pestaña de Tasks (Tareas).

  5. Configure el filtro para que muestre las tareas detenidas. En Filtrar el estado deseado, seleccione Detenido o Cualquier estado deseado.

    La opción Detenido muestra las tareas detenidas y Cualquier estado deseado muestra todas las tareas.

  6. Elija la tarea detenida que desea inspeccionar.

  7. En la fila correspondiente a la tarea detenida, en la columna Último estado, seleccione Detenido.

    En una ventana emergente se muestra el motivo por el que se ha detenido.

AWS CLI
  1. Enumere las tareas detenidas en un clúster. El resultado contiene el nombre de recurso de Amazon (ARN) de la tarea, que necesita para describir la tarea.

    aws ecs list-tasks \ --cluster cluster_name \ --desired-status STOPPED \ --region us-west-2
  2. Describa la tarea detenida para recuperar el stoppedReason en la respuesta.

    aws ecs describe-tasks \ --cluster cluster_name \ --tasks arn:aws:ecs:us-west-2:account_id:task/cluster_name/task_ID \ --region us-west-2

Recursos de códigos de error

En las páginas siguientes se proporciona información acerca de los códigos de error: