Quiero solucionar un error en una tarea de Windows detenida en un clúster de Amazon Elastic Container Service (Amazon ECS).
Solución
**Nota:**Si se muestran errores al poner en marcha comandos de Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores para AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.
Para solucionar problemas relacionados con una tarea detenida, utiliza la consola de administración de AWS o AWS CLI para ver los errores de las tareas detenidas. También puedes utilizar DescribeTasks para obtener información sobre la tarea detenida.
Importante: Solo pueded acceder a la información que DescribeTasks obtiene sobre las tareas detenidas en un plazo de 1 hora a partir del momento en que la tarea dio error. Para conservar estos datos durante más tiempo, usa la plantilla de AWS CloudFormation disponible en amazon-ecs-stopped-tasks-cwlogs en el sitio web de GitHub. Con esta plantilla, puedes capturar los registros de Amazon CloudWatch que Amazon EventBridge genera cuando se detiene una tarea.
Completa los siguientes pasos para solucionar el problema.
Errores comunes relacionados con tareas detenidas
Para solucionar errores comunes relacionados con tareas detenidas, como los problemas de comprobación del estado de las instancias de contenedor, consulta ¿Por qué se detiene mi tarea de Amazon ECS?.
Si recibes un error CannotPullContainerError: API, consulta ¿Cómo puedo resolver el error «CannotPullContainerError: API error» de Amazon Elastic Container Registry (Amazon ECR) en Amazon ECS?
Si recibes el error OutOfMemory, consulta ¿Cómo soluciono los errores OutOfMemory en Amazon ECS?.
Error «No valid providers in chain» (No hay proveedores válidos en la cadena)
Si tu instancia no tiene configurado ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE, recibirás un error similar a «CannotStartContainerError: Error response from daemon: failed to initialize logging driver: failed to create Cloudwatch log stream: NoCredentialProviders: no valid providers in chain".
Para resolver este problema, asegúrate de configurar ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE en la instancia de contenedor. Ejemplo de sintaxis de PowerShell:
<powershell>
[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine")
Initialize-ECSAgent -Cluster cluster-name -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]'
</powershell>
Nota: Sustituye cluster name por el nombre de tu clúster.
Error «The container operating system does not match the host operating system» (El sistema operativo del contenedor no coincide con el sistema operativo del host)
Si el sistema operativo (SO) del host no coincide con el sistema operativo de imagen base de la instancia de contenedor de Windows, recibirás un error similar a «CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim task: hcs::CreateComputeSystem abcdxyz: The container operating system does not match the host operating system».
Para resolver este problema, comprueba que el host de AWS Fargate o Amazon Elastic Compute Cloud (Amazon EC2) utilice el mismo sistema operativo que la instancia de contenedor.
Error «Unable to assume the role» (No se puede asumir el rol)
Si la instancia de contenedor no puede asumir el rol de AWS Identity and Access Management (IAM), recibirás un error similar a «Unable to assume the role "arn:aws:iam::abcdefxyz123:role/yyyyyyyy».
Usa el siguiente comando para asegurarte de haber configurado la opción -EnableTaskIAMRole en el script de datos de usuario:
<powershell>
Import-Module ECSTools
Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole
</powershell>
Asegúrate de cumplir los requisitos de configuración de la instancia de Windows.
Información relacionada
Arranque de instancias de contenedor de Windows de Amazon ECS para la transferencia de datos