Solución de problemas de 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 de AWS IoT Greengrass en un contenedor Docker

Usa la siguiente información para ayudarte a 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 relacionados con la ejecución del contenedor Docker

Utilice la siguiente información para ayudar a solucionar problemas con la ejecución de 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 aws ecr get-login-password comando. Asegúrese de haber instalado la última versión 2 o la versión 1 de AWS CLI. Le recomendamos que utilice la última versión 2 de AWS CLI. Para obtener más información, consulte Instalar la 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 aws ecr get-login comando. Asegúrese de que tiene la última versión de la AWS CLI instalada (por ejemplo, ejecute: pip install awscli --upgrade --user). Para obtener más información, consulte Instalación de la AWS Command Line Interface en Microsoft Windows en la Guía del usuario de AWS Command Line Interface.

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

Es posible que reciba este error o un Firewall Detected mensaje al ejecutar Docker en un ordenador con Windows. Esto también puede ocurrir si ha iniciado sesión en una red privada virtual (VPN) y su configuración de red impide el montaje de la unidad compartida. En esta situación, desactive la VPN y vuelva a ejecutar el contenedor Docker.

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

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

Error: has alcanzado tu límite de tasa de atracción

Docker Hub limita el número de solicitudes de cambios que pueden realizar los usuarios anónimos y gratuitos de Docker Hub. Si superas los límites de frecuencia de solicitudes de cambios de usuario gratuitas o anónimas, recibirás uno de los siguientes errores:

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

Para resolver estos errores, puedes esperar unas horas antes de intentar realizar otra solicitud de incorporación de usuarios. Si planeas enviar una gran cantidad de solicitudes de cambios de forma constante, visita el sitio web de Docker Hub para obtener información sobre los límites de frecuencia y las opciones para autenticar y actualizar tu cuenta de Docker.

Depuración de AWS IoT Greengrass en un contenedor 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.

Conserva 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

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

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

    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 Docker de Greengrass, consulte y Se ejecuta AWS IoT Greengrass en Docker con aprovisionamiento manual Se ejecuta AWS IoT Greengrass en Docker con aprovisionamiento automático

Adjunte un shell interactivo al contenedor de Docker

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

  • 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 te permite ver y controlar el contenedor de Docker desde tu terminal actual.

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

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

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