Résolution des problèmes liés à AWS IoT Greengrass dans un conteneur Docker - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés à AWS IoT Greengrass dans un conteneur Docker

Utilisez les informations suivantes pour résoudre les problèmes liés à l'exécution AWS IoT Greengrass dans un conteneur Docker et pour résoudre les problèmes liés AWS IoT Greengrass au conteneur Docker.

Résolution des problèmes liés à l'exécution du conteneur Docker

Aidez-vous des informations suivantes pour résoudre les problèmes que vous êtes susceptible de rencontrer lors de l'exécution d'AWS IoT Greengrass dans un conteneur Docker.

Erreur : impossible d'effectuer une connexion interactive à partir d'un appareil autre que TTY

Cette erreur peut se produire lorsque vous exécutez la aws ecr get-login-password commande. Assurez-vous d'avoir installé la dernière AWS CLI version 2 ou version 1. Nous vous recommandons d'utiliser la AWS CLI version 2. Pour plus d’informations, consultez Installation d’AWS CLI dans le Guide de l’utilisateur AWS Command Line Interface.

Erreur : options inconnues : - no-include-email

Cette erreur peut se produire lorsque vous exécutez la aws ecr get-login commande. Assurez-vous que vous disposez de la dernière version de l'interface de ligne de commande AWS CLI installée (par exemple, exécutez : pip install awscli --upgrade --user). Pour plus d'informations, consultez la section Installation du AWS Command Line Interface sous Microsoft Windows dans le Guide de AWS Command Line Interface l'utilisateur.

Erreur : Un pare-feu bloque le partage de fichiers entre les fenêtres et les conteneurs.

Vous pouvez recevoir cette erreur ou un Firewall Detected message lors de l'exécution de Docker sur un ordinateur Windows. Ce problème peut également survenir si vous êtes connecté à un réseau privé virtuel (VPN) et que vos paramètres réseau empêchent le montage du lecteur partagé. Dans ce cas, désactivez le VPN et réexécutez le conteneur Docker.

Erreur : une erreur s'est produite (AccessDeniedException) lors de l'appel de l' GetAuthorizationToken opération : L'utilisateur : arn:aws:iam : : account-id:user/ n'est pas autorisé à effectuer : ecr : on resource :* GetAuthorizationToken <user-name>

Vous pouvez recevoir cette erreur lors de l'exécution de la aws ecr get-login-password commande si vous ne disposez pas des autorisations suffisantes pour accéder à un référentiel Amazon ECR. Pour plus d'informations, consultez les exemples de politiques relatives aux référentiels Amazon ECR et l'accès à un référentiel Amazon ECR dans le guide de l'utilisateur Amazon ECR.

Erreur : vous avez atteint votre limite de taux d'attraction

Docker Hub limite le nombre de pull requests que les utilisateurs anonymes et gratuits de Docker Hub peuvent effectuer. Si vous dépassez les limites de débit pour les pull requests anonymes ou gratuites destinées aux utilisateurs, vous recevez l'une des erreurs suivantes :

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

Pour résoudre ces erreurs, vous pouvez attendre quelques heures avant d'essayer une autre pull request. Si vous prévoyez de soumettre régulièrement un grand nombre de pull requests, consultez le site Web de Docker Hub pour obtenir des informations sur les limites de débit et les options d'authentification et de mise à niveau de votre compte Docker.

Débogage de AWS IoT Greengrass dans un conteneur Docker

Pour déboguer les problèmes avec un conteneur Docker, vous pouvez conserver les journaux d'exécution Greengrass ou attacher un shell interactif au conteneur Docker.

Persister les logs Greengrass en dehors du conteneur Docker

Après avoir arrêté un AWS IoT Greengrass conteneur, vous pouvez utiliser la docker cp commande suivante pour copier les journaux Greengrass du conteneur Docker vers un répertoire de journaux temporaire.

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

Pour conserver les journaux même après la sortie ou la suppression d'un conteneur, vous devez exécuter le conteneur AWS IoT Greengrass Docker après avoir monté le répertoire par liaison. /greengrass/v2/logs

Pour monter le /greengrass/v2/logs répertoire par liaison, effectuez l'une des opérations suivantes lorsque vous exécutez un nouveau conteneur AWS IoT Greengrass Docker.

  • Incluez -v /tmp/logs:/greengrass/v2/logs:ro dans votre docker run commande.

    Modifiez le volumes bloc dans le fichier Compose pour inclure la ligne suivante avant d'exécuter votre docker-compose up commande.

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

Vous pouvez ensuite consulter vos journaux /tmp/logs sur votre hôte pour voir les journaux de Greengrass lorsqu'AWS IoT Greengrassil est exécuté dans le conteneur Docker.

Pour plus d'informations sur l'exécution des conteneurs Greengrass Docker, consultez et Exécuter AWS IoT Greengrass dans Docker avec provisionnement manuel Exécuter AWS IoT Greengrass dans Docker avec provisionnement automatique

Attachez un shell interactif au conteneur Docker

Lorsque vous exécutez docker exec des commandes dans le conteneur Docker, ces commandes ne sont pas capturées dans les journaux Docker. L'enregistrement de vos commandes dans les journaux Docker peut vous aider à étudier l'état du conteneur Greengrass Docker. Effectuez l’une des actions suivantes :

  • Exécutez la commande suivante dans un terminal séparé pour associer l'entrée, la sortie et l'erreur standard de votre terminal au conteneur en cours d'exécution. Cela vous permet de visualiser et de contrôler le conteneur Docker depuis votre terminal actuel.

    docker attach container-id
  • Exécutez la commande suivante dans un terminal séparé. Cela vous permet d'exécuter vos commandes en mode interactif, même si le conteneur n'est pas attaché.

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

Pour un AWS IoT Greengrass dépannage général, voirRésolution des problèmes AWS IoT Greengrass V2.