Solución de problemas AWS IoT Greengrass en un contenedor Docker - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas AWS IoT Greengrass en un contenedor Docker

Usa la siguiente información como ayuda para solucionar problemas relacionados con la ejecución AWS IoT Greengrass en un contenedor de Docker y para depurar los problemas AWS IoT Greengrass en el contenedor de Docker.

Solución de problemas al ejecutar el contenedor de Docker

Usa la siguiente información para solucionar problemas relacionados con la ejecución AWS IoT Greengrass en un contenedor de Docker.

Error: no se puede realizar un inicio de sesión interactivo desde un dispositivo que no sea TTY

Este error puede producirse al ejecutar el comando aws ecr get-login-password. Asegúrese de haber instalado la última AWS CLI versión 2 o 1. Le recomendamos que utilice la AWS CLI versión 2. Para obtener más información, consulte Installing the AWS CLI en la Guía del usuario de AWS Command Line Interface .

Error: opciones desconocidas: - no-include-email

Este error puede producirse al ejecutar el comando aws ecr get-login. Asegúrese de tener instalada la última AWS CLI versión (por ejemplo, Run:pip install awscli --upgrade --user). Para obtener más información, consulte Instalación de AWS Command Line Interface en Microsoft Windows en la Guía del AWS Command Line Interface usuario.

Error: A firewall is blocking file Sharing between windows and the containers.

Puede que reciba este error o un mensaje Firewall Detected al ejecutar Docker en un equipo Windows. Esto también puede ocurrir si ha iniciado sesión en una red privada virtual (VPN) y la configuración de la red impide que se monte la unidad compartida. En ese caso, apague VPN y vuelva a ejecutar el contenedor Docker.

Error: se produjo un error (AccessDeniedException) al llamar a la GetAuthorizationToken operación: el usuario: arn:aws:iam: ::user/ <user-name>no account-id está autorizado a realizar: ecr: on resource: * GetAuthorizationToken

Es posible que recibas este error al ejecutar el aws ecr get-login-password comando si no tienes permisos suficientes para acceder a un ECR repositorio de Amazon. Para obtener más información, consulte Ejemplos de políticas de ECR repositorios de Amazon y Acceso a un ECR repositorio de Amazon en la Guía del ECR usuario de Amazon.

Error: Ha alcanzado su límite de tasa de cambios

Docker Hub limita la cantidad de solicitudes de cambio que pueden realizar los usuarios anónimos y gratuitos de Docker Hub. Si supera los límites de tasa de solicitudes de cambio de usuarios anónimos o gratuitos, entonces recibe uno de los siguientes errores:

ERROR: toomanyrequests: Too Many Requests.
You have reached your pull rate limit.

Para resolver estos errores, puede esperar unas horas antes de intentar realizar otra solicitud de cambio. Si planea enviar una gran cantidad de solicitudes de cambio de forma constante, visite el sitio web de Docker Hub para obtener información sobre los límites de tasa y las opciones para autenticar y actualizar su cuenta de Docker.

Depuración AWS IoT Greengrass en un contenedor de Docker

Para depurar problemas con un contenedor de Docker, puede conservar los registros del tiempo de ejecución de Greengrass o asociar un intérprete de comandos interactivo al contenedor de Docker.

Conservación de los registros de Greengrass fuera del contenedor de Docker

Tras detener un AWS IoT Greengrass contenedor, puede usar el siguiente docker cp comando para copiar los registros de Greengrass del contenedor de Docker a un directorio de registros temporal.

docker cp container-id:/greengrass/v2/logs /tmp/logs

Para conservar los registros incluso después de que un contenedor salga o se elimine, debe ejecutar el contenedor AWS IoT Greengrass Docker después de montar el directorio en un enlace. /greengrass/v2/logs

Para montar el /greengrass/v2/logs directorio en un enlace, realice una de las siguientes acciones cuando ejecute un contenedor Docker nuevo. AWS IoT Greengrass

  • Incluya -v /tmp/logs:/greengrass/v2/logs:ro en su comando docker run.

    Modifique el bloque volumes en el archivo de Compose para incluir la siguiente línea antes de ejecutar el comando docker-compose up.

    volumes: - /tmp/logs:/greengrass/v2/logs:ro

A continuación, puede comprobar sus registros /tmp/logs en su host para ver los registros de Greengrass mientras AWS IoT Greengrass se ejecuta dentro del contenedor de Docker.

Para obtener información sobre cómo ejecutar contenedores de Docker de Greengrass, consulte Ejecución de AWS IoT Greengrass en Docker con aprovisionamiento manual y Se ejecuta AWS IoT Greengrass en Docker con aprovisionamiento automático.

Asociación de un intérprete de comandos interactivo a un contenedor de Docker

Cuando utiliza docker exec para ejecutar comandos dentro del contenedor de Docker, esos comandos no se capturan en los registros de Docker. Registrar los comandos en los registros de Docker puede ayudarlo a investigar el estado del contenedor de Docker de Greengrass. Realice una de las siguientes acciones:

  • Ejecute el siguiente comando en un terminal independiente para adjuntar la entrada, la salida y el error estándar del terminal al contenedor en ejecución. Esto le permite ver y controlar el contenedor de Docker desde su terminal actual.

    docker attach container-id
  • Ejecute el siguiente comando en un terminal independiente. Esto le permite ejecutar sus comandos en modo interactivo, incluso si el contenedor no está conectado.

    docker exec -it container-id sh -c "command > /proc/1/fd/1"

Para obtener información general sobre la AWS IoT Greengrass solución de problemas, consulte. Solución de problemas AWS IoT Greengrass V2