Test des communications - 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.

Test des communications

  1. Assurez-vous que votre ordinateur et le périphérique AWS IoT Greengrass principal sont connectés à Internet via le même réseau.

    1. Sur le périphérique AWS IoT Greengrass principal, exécutez la commande suivante pour trouver son adresse IP.

      hostname -I
    2. Sur votre ordinateur, exécutez la commande suivante à l'aide de l'adresse IP du noyau. Vous pouvez utilisez Ctrl + C pour arrêter la commande ping.

      ping IP-address

      Une sortie similaire à la suivante indique une communication réussie entre l'ordinateur et le périphérique AWS IoT Greengrass principal (0 % de perte de paquets) :

      Sortie de commande ping réussie.
      Note

      Si vous ne parvenez pas à envoyer un ping à une instance EC2 en cours d'exécution AWS IoT Greengrass, assurez-vous que les règles du groupe de sécurité entrant pour l'instance autorisent le trafic ICMP pour les messages de demande Echo. Pour plus d'informations, consultez la section Ajout de règles à un groupe de sécurité dans le guide de l'utilisateur Amazon EC2.

      Sur les ordinateurs hôtes Windows, dans l'application Pare-feu Windows avec fonctions avancées de sécurité, vous pouvez devoir activer une règle entrante qui autorise les demandes d'écho entrantes (par exemple, Partage de fichiers et d'imprimante (demande d'écho - ICMPv4-In)) ou en créer une.

  2. Obtenez votre AWS IoT point de terminaison.

    1. Dans le volet de navigation de la AWS IoT console, sélectionnez Paramètres.

    2. Sous Point de terminaison des données de l'appareil, notez la valeur du point de terminaison. Vous allez utiliser cette valeur pour remplacer l'espace réservé AWS_IOT_ENDPOINT dans les commandes des étapes suivantes.

  3. Sur votre ordinateur (et non sur le périphérique AWS IoT Greengrass principal), ouvrez deux fenêtres de ligne de commande (terminal ou invite de commande). Une fenêtre représente l'appareil client HelloWorld _Publisher et l'autre le périphérique client HelloWorld _Subscriber.

    Lors de l'exécution, basicDiscovery.py tente de collecter des informations sur l'emplacement du AWS IoT Greengrass noyau à ses extrémités. Ces informations sont stockées une fois que le périphérique client a découvert le cœur et s'y est connecté avec succès. Cela permet d'exécuter localement la messagerie et les opérations à venir (sans avoir besoin d'une connexion Internet).

    Note

    Les ID client utilisés pour les connexions MQTT doivent correspondre au nom de l'objet du périphérique client. Le basicDiscovery.py script définit l'ID client pour les connexions MQTT sur le nom d'objet que vous spécifiez lorsque vous exécutez le script.

    Exécutez la commande suivante depuis le dossier qui contient le basicDiscovery.py fichier pour obtenir des informations détaillées sur l'utilisation du script :

    python basicDiscovery.py --help
  4. Dans la fenêtre de l'appareil client HelloWorld _Publisher, exécutez les commandes suivantes.

    • Remplacez path-to-certs-folder par le chemin d'accès au dossier qui contient les certificats, les clés et basicDiscovery.py.

    • Remplacez AWS_IOT_ENDPOINT par votre point de terminaison.

    • Remplacez les deux CertId instances d'éditeur par l'ID de certificat figurant dans le nom de fichier de votre appareil client HelloWorld _Publisher.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'

    La sortie obtenue doit être similaire à la suivante, qui inclut des entrées comme Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Note

    Si le script renvoie un message error: unrecognized arguments. Remplacez les guillemets simples par des guillemets doubles pour les paramètres --topic et --message, puis exécutez à nouveau la commande.

    Pour résoudre un problème de connexion, vous pouvez essayer d'utiliser la détection manuelle des IP.

    Capture d'écran de la sortie de l'éditeur.
  5. Dans la fenêtre de l'appareil client HelloWorld _Subscriber, exécutez les commandes suivantes.

    • Remplacez path-to-certs-folder par le chemin d'accès au dossier qui contient les certificats, les clés et basicDiscovery.py.

    • Remplacez AWS_IOT_ENDPOINT par votre point de terminaison.

    • Remplacez les deux CertId instances d'abonné par l'ID du certificat dans le nom de fichier de votre appareil client HelloWorld _Subscriber.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    La sortie suivante doit s'afficher. Elle inclut des entrées comme Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Capture d'écran de la sortie de l'abonné.

Fermez la HelloWorld_Publisher fenêtre pour empêcher les messages de s'y accumuler. HelloWorld_Subscriber

Les tests sur un réseau d'entreprise peuvent interférer avec la connexion au noyau. Pour contourner ce problème, vous pouvez entrer le point de terminaison. Cela garantit que le basicDiscovery.py script se connecte à l'adresse IP correcte du périphérique AWS IoT Greengrass principal.

Pour entrer manuellement le point de terminaison
  1. Dans le volet de navigation de la AWS IoT console, sous Gérer, développez les appareils Greengrass, puis choisissez Groups (V1).

  2. Dans la section Groupes Greengrass, choisissez votre groupe.

  3. Configurez le noyau pour gérer manuellement les points de terminaison du broker MQTT. Procédez comme suit :

    1. Sur la page de configuration du groupe, choisissez l'onglet Fonctions Lambda.

    2. Sous Fonctions Lambda du système, sélectionnez Détecteur IP, puis Modifier.

    3. Dans les paramètres Modifier le détecteur IP, choisissez Gérer manuellement les points de terminaison du broker MQTT, puis sélectionnez Enregistrer.

  4. Entrez le point de terminaison du broker MQTT pour le noyau. Procédez comme suit :

    1. Sous Vue d'ensemble, choisissez le noyau Greengrass.

    2. Sous Points de terminaison du broker MQTT, sélectionnez Gérer les points de terminaison.

    3. Choisissez Ajouter un point de terminaison et assurez-vous de n'avoir qu'une seule valeur de point de terminaison. Cette valeur doit être le point de terminaison de l'adresse IP pour le port 8883 de votre appareil AWS IoT Greengrass principal (par exemple,192.168.1.4).

    4. Choisissez Mettre à jour.