Facultatif : Configuration de votre conteneur Docker pour IDT pourAWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

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.

Facultatif : Configuration de votre conteneur Docker pour IDT pourAWS IoT Greengrass

AWS IoT Greengrass fournit une image Docker et un Dockerfile qui facilitent l'exécution du logiciel AWS IoT Greengrass Core dans un conteneur Docker. Après avoir configuré le conteneur AWS IoT Greengrass, vous pouvez exécuter des tests IDT. Actuellement, seules les architectures Docker x86_64 sont prises en charge pour exécuter IDT pour AWS IoT Greengrass.

Cette fonctionnalité nécessite IDT v2.3.0 ou une version ultérieure.

Le processus de configuration du conteneur Docker pour exécuter des tests IDT dépend de l'utilisation de l'image Docker ou du Dockerfile fourni par AWS IoT Greengrass.

  • Utilisez l'image Docker. L'image Docker a le logiciel AWS IoT Greengrass Core et ses dépendances installés.

  • Utilisez le Dockerfile. Le Dockerfile contient le code source que vous pouvez utiliser pour créer des images de conteneur AWS IoT Greengrass personnalisées. L'image peut être modifiée pour s'exécuter sur différentes architectures de plateformes ou pour réduire la taille de l'image.

    Note

    AWS IoT Greengrassne fournit pas d'images Dockerfiles ou Docker pourAWS IoT GreengrassVersion 1.11.1 du logiciel Core. Pour exécuter des tests IDT sur vos propres images de conteneur personnalisées, votre image doit inclure les dépendances définies dans le Dockerfile fourni par AWS IoT Greengrass.

Les fonctions suivantes ne sont pas disponibles lorsque vous exécutez AWS IoT Greengrass dans un conteneur Docker :

  • Connecteurs qui s'exécutent en mode Greengrass container (Conteneur Greengrass). Pour exécuter un connecteur dans un conteneur Docker, le connecteur doit s'exécuter en mode No container (Aucun conteneur). Pour rechercher des connecteurs prenant en charge le mode No container (Aucun conteneur) veuillez consulter AWS- connecteurs Greengrass fournis. Certains de ces connecteurs ont un paramètre de mode d'isolement que vous devez définir sur Aucun conteneur.

  • Ressources de volumes et d'appareils locales. Vos fonctions Lambda définies par l'utilisateur qui s'exécutent dans le conteneur Docker doivent accéder directement aux appareils et aux volumes du noyau.

Configurer l'image Docker fournie par AWS IoT Greengrass

Procédez comme suit pour configurer l'image AWS IoT Greengrass Docker afin d'exécuter des tests IDT.

Conditions préalables

Avant de commencer ce didacticiel, vous devez effectuer les opérations suivantes.

  • Vous devez installer les logiciels et les versions suivants sur votre ordinateur hôte en fonction de l'AWS Command Line Interface(AWS CLI) version que vous choisissez.

    AWS CLI version 2
    • Dockerversion 18.09 ou suivante. Les versions antérieures sont susceptibles d'également fonctionner, mais nous recommandons la version 18.09 ou suivante.

    • AWS CLIversion 2.0.0 ou suivante.

      Note

      Pour passer à une version ultérieureAWS CLIExécuter la version 2 d'un ordinateur Windows, vous devez répéter l'Installation MSIprocessus.

    AWS CLI version 1
    • Dockerversion 18.09 ou suivante. Les versions antérieures sont susceptibles d'également fonctionner, mais nous recommandons la version 18.09 ou suivante.

    • Pythonversion 3.6 ou suivante.

    • pip version 18.1 ou suivante.

    • AWS CLIversion 1.17.10 ou suivante

      Note

      Si vous utilisez le pluginInstallation MSIduAWS CLIPour Windows, vous devez être conscient des points suivants :

      • Si l'icôneAWS CLIL'installation de la version 1 ne parvient pas à pour installer botocore, essayez d'utiliser le kitInstallation Python et pip.

      • Pour passer à une version ultérieureAWS CLIVersion 1, vous devez répéter le processus d'installation MSI.

  • Pour accéder aux ressources Amazon Elastic Container Registry (Amazon ECR), vous devez accorder l'autorisation suivante.

    • Amazon ECR exige que les utilisateurs accordent leecr:GetAuthorizationTokenautorisation par le biais d'unAWS Identity and Access Management(IAM) avant qu'ils puissent s'authentifier auprès d'un référentiel et transmettre ou extraire des images à partir d'un référentiel Amazon ECR. Pour de plus amples informations, veuillez consulterExemples de politique de référentiel Amazon ECRetAccéder à un seul référentiel Amazon ECRdans leGuide de l'utilisateur Amazon Elastic Container.

 

  1. Téléchargez l'image Docker et configurez le conteneur. Vous pouvez télécharger l'image prédéfinie à partir deDocker HubouAmazon Elastic Container Registry(Amazon ECR) et l'exécuter sur les plateformes Windows, macOS et Linux (x86_64).

    Pour télécharger l'image Docker à partir d'Amazon ECR, suivez toutes les étapes de la sectionÉtape 1 : Obtenir l'image deAWS IoT Greengrass conteneur auprès d'Amazon ECR. Revenez ensuite à cette rubrique pour continuer la configuration.

  2. Utilisateurs Linux uniquement : Assurez-vous que l'utilisateur qui exécute IDT a l'autorisation d'exécuter les commandes Docker. Pour de plus amples informations, veuillez consulter Gérer Docker en tant qu'utilisateur non-racine dans la documentation Docker.

  3. Pour exécuter le conteneur AWS IoT Greengrass, utilisez la commande de votre système d'exploitation :

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Remplacez <host-path-to-kernel-config-file> par le chemin d'accès au fichier de configuration du noyau sur l'hôte et <container-path> par le chemin d'accès où le volume est monté dans le conteneur.

      Le fichier de configuration du noyau sur l'hôte se trouve généralement dans /proc/config.gz ou /boot/config-<kernel-release-date>. Vous pouvez exécuter uname -r pour trouver la valeur de <kernel-release-date>.

      Exemple : Pour monter le fichier de configuration à partir de/boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Exemple : Pour monter le fichier de configuration à partir deproc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Important

    Lors du test avec IDT, n'incluez pas l'argument --entrypoint /greengrass-entrypoint.sh \ utilisé pour exécuter l'image à des fins générales AWS IoT Greengrass.

  4. Étape suivante: Configurez votreAWSinformations d'identification etdevice.jsonfichier.

Configurer le Dockerfile fourni par AWS IoT Greengrass

Procédez comme suit pour configurer l'image Docker créée à partir du Dockerfile AWS IoT Greengrass afin d'exécuter des tests IDT.

  1. À partir de AWS IoT Greengrass Logiciel Docker, téléchargez le package Dockerfile sur votre ordinateur hôte et extrayez-le.

  2. Ouvrir README.md. Les trois étapes suivantes font référence aux sections de ce fichier.

  3. Assurez-vous que vous remplissez les conditions requises indiquées dans la section Conditions préalables.

  4. Utilisateurs Linux uniquement : Terminez le kitActiver la protection Symlink et HardlinketActiver le transfert réseau IPv4étapes.

  5. Pour générer l'image Docker, suivez toutes les étapes de la sectionÉtape 1. Créez le kitAWS IoT GreengrassDocker Image. Revenez ensuite à cette rubrique pour continuer la configuration.

  6. Pour exécuter le conteneur AWS IoT Greengrass, utilisez la commande de votre système d'exploitation :

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Remplacez <host-path-to-kernel-config-file> par le chemin d'accès au fichier de configuration du noyau sur l'hôte et <container-path> par le chemin d'accès où le volume est monté dans le conteneur.

      Le fichier de configuration du noyau sur l'hôte se trouve généralement dans /proc/config.gz ou /boot/config-<kernel-release-date>. Vous pouvez exécuter uname -r pour trouver la valeur de <kernel-release-date>.

      Exemple : Pour monter le fichier de configuration à partir de/boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Exemple : Pour monter le fichier de configuration à partir deproc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Remplacez <image-repository>:<tag> dans la commande avec le nom du référentiel et la balise de l'image cible.

      Exemple : Pour pointer vers la dernière version du kitAWS IoT GreengrassLogiciel Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Important

    Lors du test avec IDT, n'incluez pas l'argument --entrypoint /greengrass-entrypoint.sh \ utilisé pour exécuter l'image à des fins générales AWS IoT Greengrass.

  7. Étape suivante: Configurez votreAWSinformations d'identification etdevice.jsonfichier.

Dépannage de la configuration de votre conteneur Docker pour IDT pour AWS IoT Greengrass

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

AVERTISSEMENT : Erreur lors du chargement de config file : /home/user/config.json - stat /home/ /home/ <user>/.docker/config.json : autorisation refusée

Si vous obtenez cette erreur lors de l'exécution des commandes docker sous Linux, exécutez la commande suivante. Remplacez <user> dans la commande suivante par l'utilisateur qui exécute IDT.

sudo chown <user>:<user> /home/<user>/.docker -R sudo chmod g+rwx /home/<user>/.docker -R