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.
Tester les communications entre appareils clients
Les appareils clients peuvent utiliser le Kit SDK des appareils AWS IoT pour découvrir, se connecter et communiquer avec un appareil principal. Vous pouvez utiliser le client de découverte Greengrass Kit SDK des appareils AWS IoT pour utiliser l'API de découverte Greengrass, qui renvoie des informations sur les principaux appareils auxquels un appareil client peut se connecter. La réponse de l'API inclut les points de terminaison du broker MQTT à connecter et les certificats à utiliser pour vérifier l'identité de chaque périphérique principal. Ensuite, l'appareil client peut essayer chaque point de terminaison jusqu'à ce qu'il se connecte avec succès à un périphérique principal.
Les appareils clients ne peuvent découvrir que les appareils principaux auxquels vous les associez. Avant de tester les communications entre un appareil client et un périphérique principal, vous devez associer l'appareil client au périphérique principal. Pour plus d’informations, consultez Associer des appareils clients.
L'API de découverte Greengrass renvoie les points de terminaison du broker MQTT du périphérique principal que vous spécifiez. Vous pouvez utiliser le composant de détection IP pour gérer ces points de terminaison à votre place, ou vous pouvez les gérer manuellement pour chaque périphérique principal. Pour plus d’informations, consultez Gérez les principaux points de terminaison des appareils.
Note
Pour utiliser l'API de découverte Greengrass, un appareil client doit disposer de cette autorisation. greengrass:Discover
Pour plus d’informations, consultez AWS IoTPolitique minimale pour les appareils clients.
Kit SDK des appareils AWS IoTIl est disponible dans plusieurs langages de programmation. Pour plus d'informations, consultez la section SDK pour AWS IoT appareils dans le guide du AWS IoT Core développeur.
Rubriques
Tester les communications (Python)
Dans cette section, vous allez utiliser l'exemple de découverte de Greengrass dans la Kit SDK des appareils AWS IoTversion v2 pour Python
Important
Pour utiliser la Kit SDK des appareils AWS IoT version v2 pour Python, un périphérique doit exécuter Python 3.6 ou version ultérieure.
Pour tester les communications (Kit SDK des appareils AWS IoTv2 pour Python)
-
Téléchargez et installez la Kit SDK des appareils AWS IoTversion 2 pour Python
sur l'AWS IoTappareil à connecter en tant que périphérique client. Sur l'appareil client, procédez comme suit :
-
Clonez le dépôt Kit SDK des appareils AWS IoT v2 pour Python pour le télécharger.
git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
-
Installez la Kit SDK des appareils AWS IoT v2 pour Python.
python3 -m pip install --user ./aws-iot-device-sdk-python-v2
-
-
Accédez au dossier d'échantillons dans la Kit SDK des appareils AWS IoT version 2 pour Python.
cd aws-iot-device-sdk-python-v2/samples
-
Exécutez l'exemple d'application de découverte Greengrass. Cette application attend des arguments qui spécifient le nom de l'objet du périphérique client, le sujet MQTT et le message à utiliser, ainsi que les certificats qui authentifient et sécurisent la connexion. L'exemple suivant envoie un message Hello World à la
clients/
rubrique.MyClientDevice1
/hello/world-
Remplacez
MyClientDevice1
par le nom de l'objet de l'appareil client. -
Remplacez
~/certs/ AmazonRoot CA1.pem
par le chemin d'accès au certificat racine de l'autorité de certification Amazon sur l'appareil client. -
Remplacez
~/certs/device.pem.crt
par le chemin d'accès au certificat de périphérique sur le périphérique client. -
Remplacez
~/certs/private.pem.key par le chemin d'accès au fichier de clé
privée sur l'appareil client. -
Remplacez
us-east-1
par la AWS région où fonctionnent votre appareil client et votre appareil principal.
python3 basic_discovery.py \\ --thing_name
MyClientDevice1
\\ --topic 'clients/MyClientDevice1
/hello/world' \\ --message 'Hello World!' \\ --ca_file~/certs/AmazonRootCA1.pem
\\ --cert~/certs/device.pem.crt
\\ --key~/certs/private.pem.key
\\ --regionus-east-1
\\ --verbosity WarnL'exemple d'application de découverte envoie le message 10 fois et se déconnecte. Il s'abonne également au même sujet où il publie des messages. Si le résultat indique que l'application a reçu des messages MQTT sur le sujet, le dispositif client peut communiquer avec succès avec le dispositif principal.
Performing greengrass discovery... awsiot.greengrass_discovery.DiscoverResponse(gg_groups=[awsiot.greengrass_discovery.GGGroup(gg_group_id='greengrassV2-coreDevice-MyGreengrassCore', cores=[awsiot.greengrass_discovery.GGCore(thing_arn='arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore', connectivity=[awsiot.greengrass_discovery.ConnectivityInfo(id='203.0.113.0', host_address='203.0.113.0', metadata='', port=8883)])], certificate_authorities=['-----BEGIN CERTIFICATE-----\
MIICiT...EXAMPLE=
\ -----END CERTIFICATE-----\ '])]) Trying core arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore at host 203.0.113.0 port 8883 Connected! Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 0} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 0}' Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 1} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 1}'...
Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 9} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 9}'Si l'application génère plutôt une erreur, reportez-vous à la section Résolution des problèmes liés à la découverte de Greengrass.
Vous pouvez également consulter les journaux Greengrass sur l'appareil principal pour vérifier si le périphérique client se connecte et envoie des messages avec succès. Pour plus d’informations, consultez AWS IoT GreengrassJournaux de surveillance.
-
Tester les communications (C++)
Dans cette section, vous allez utiliser l'exemple de découverte de Greengrass dans la Kit SDK des appareils AWS IoTversion v2 pour C++ pour
Pour créer la Kit SDK des appareils AWS IoT version 2 pour C++, un périphérique doit disposer des outils suivants :
-
C++ 11 ou version ultérieure
-
CMake 3.1 ou version ultérieure
-
L'un des compilateurs suivants :
-
GCC 4.8 ou version ultérieure
-
Clang 3.9 ou version ultérieure
-
MSVC 2015 ou version ultérieure
-
Pour tester les communications (Kit SDK des appareils AWS IoTv2 pour C++)
-
Téléchargez et compilez la Kit SDK des appareils AWS IoTv2 pour C++
sur l'AWS IoTappareil à connecter en tant que périphérique client. Sur l'appareil client, procédez comme suit :
-
Créez un dossier pour l'espace de travail Kit SDK des appareils AWS IoT v2 pour C++ et modifiez-le.
cd mkdir iot-device-sdk-cpp cd iot-device-sdk-cpp
-
Clonez le dépôt Kit SDK des appareils AWS IoT v2 pour C++ pour le télécharger. L'
--recursive
indicateur indique de télécharger les sous-modules.git clone --recursive https://github.com/aws/aws-iot-device-sdk-cpp-v2.git
-
Créez un dossier pour la sortie de compilation Kit SDK des appareils AWS IoT v2 pour C++ et modifiez-le.
mkdir aws-iot-device-sdk-cpp-v2-build cd aws-iot-device-sdk-cpp-v2-build
-
Construisez la Kit SDK des appareils AWS IoT v2 pour C++.
cmake -DCMAKE_INSTALL_PREFIX="~/iot-device-sdk-cpp" -DCMAKE_BUILD_TYPE="Release" ../aws-iot-device-sdk-cpp-v2 cmake --build . --target install
-
-
Créez l'exemple d'application Greengrass Discovery dans la Kit SDK des appareils AWS IoT version 2 pour C++. Procédez comme suit :
-
Accédez au dossier d'échantillons Greengrass Discovery dans la Kit SDK des appareils AWS IoT version 2 pour C++.
cd ../aws-iot-device-sdk-cpp-v2/samples/greengrass/basic_discovery
-
Créez un dossier pour l'exemple de sortie de build de Greengrass Discovery et modifiez-le.
mkdir build cd build
-
Créez l'exemple d'application Greengrass Discovery.
cmake -DCMAKE_PREFIX_PATH="~/iot-device-sdk-cpp" -DCMAKE_BUILD_TYPE="Release" .. cmake --build . --config "Release"
-
-
Exécutez l'exemple d'application de découverte Greengrass. Cette application attend des arguments qui spécifient le nom de l'objet du périphérique client, le sujet MQTT à utiliser et les certificats qui authentifient et sécurisent la connexion. L'exemple suivant s'abonne à la
clients/
rubrique et publie un message que vous entrez sur la ligne de commande pour la même rubrique.MyClientDevice1
/hello/world-
Remplacez
MyClientDevice1
par le nom de l'objet de l'appareil client. -
Remplacez
~/certs/ AmazonRoot CA1.pem
par le chemin d'accès au certificat racine de l'autorité de certification Amazon sur l'appareil client. -
Remplacez
~/certs/device.pem.crt
par le chemin d'accès au certificat de périphérique sur le périphérique client. -
Remplacez
~/certs/private.pem.key par le chemin d'accès au fichier de clé
privée sur l'appareil client. -
Remplacez
us-east-1
par la AWS région où fonctionnent votre appareil client et votre appareil principal.
./basic-discovery \ --thing_name
MyClientDevice1
\ --topic 'clients/MyClientDevice1
/hello/world' \ --ca_file~/certs/AmazonRootCA1.pem
\ --cert~/certs/device.pem.crt
\ --key~/certs/private.pem.key
\ --regionus-east-1
L'exemple d'application Discovery s'abonne au sujet et vous invite à saisir un message à publier.
Connecting to group greengrassV2-coreDevice-MyGreengrassCore with thing arn arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore, using endpoint 203.0.113.0:8883 Connected to group greengrassV2-coreDevice-MyGreengrassCore, using connection to 203.0.113.0:8883 Successfully subscribed to clients/MyClientDevice1/hello/world Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press enter. Enter 'exit' to exit this program.
Si l'application génère plutôt une erreur, reportez-vous à la section Résolution des problèmes liés à la découverte de Greengrass.
-
-
Entrez un message, tel que
Hello World!
.Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press enter. Enter 'exit' to exit this program. Hello World!
Si le résultat indique que l'application a reçu le message MQTT sur le sujet, le dispositif client peut communiquer avec succès avec le dispositif principal.
Operation on packetId 2 Succeeded Publish received on topic clients/MyClientDevice1/hello/world Message: Hello World!
Vous pouvez également consulter les journaux Greengrass sur l'appareil principal pour vérifier si le périphérique client se connecte et envoie des messages avec succès. Pour plus d’informations, consultez AWS IoT GreengrassJournaux de surveillance.
Tester les communications (JavaScript)
Dans cette section, vous allez utiliser l'exemple de découverte de Greengrass dans la Kit SDK des appareils AWS IoTversion v2 JavaScript pour
Important
Pour utiliser la Kit SDK des appareils AWS IoT version v2 pour JavaScript, un appareil doit exécuter Node v10.0 ou version ultérieure.
Pour tester les communications (Kit SDK des appareils AWS IoTversion 2 pour JavaScript)
-
Téléchargez et installez la Kit SDK des appareils AWS IoTversion 2 JavaScript pour
AWS IoT que l'appareil se connecte en tant que périphérique client. Sur l'appareil client, procédez comme suit :
-
Clonez la Kit SDK des appareils AWS IoT v2 pour JavaScript le dépôt afin de la télécharger.
git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
-
Installez la Kit SDK des appareils AWS IoT v2 pour JavaScript.
cd aws-iot-device-sdk-js-v2 npm install
-
-
Accédez au dossier d'exemples de découverte Greengrass dans la Kit SDK des appareils AWS IoT version v2 pour. JavaScript
cd samples/node/basic_discovery
-
Installez l'exemple d'application Greengrass Discovery.
npm install
-
Exécutez l'exemple d'application de découverte Greengrass. Cette application attend des arguments qui spécifient le nom de l'objet du périphérique client, le sujet MQTT et le message à utiliser, ainsi que les certificats qui authentifient et sécurisent la connexion. L'exemple suivant envoie un message Hello World à la
clients/
rubrique.MyClientDevice1
/hello/world-
Remplacez
MyClientDevice1
par le nom de l'objet de l'appareil client. -
Remplacez
~/certs/ AmazonRoot CA1.pem
par le chemin d'accès au certificat racine de l'autorité de certification Amazon sur l'appareil client. -
Remplacez
~/certs/device.pem.crt
par le chemin d'accès au certificat de périphérique sur le périphérique client. -
Remplacez
~/certs/private.pem.key par le chemin d'accès au fichier de clé
privée sur l'appareil client. -
Remplacez
us-east-1
par la AWS région où fonctionnent votre appareil client et votre appareil principal.
node dist/index.js \ --thing_name
MyClientDevice1
\ --topic 'clients/MyClientDevice1
/hello/world' \ --message 'Hello World!' \ --ca_file~/certs/AmazonRootCA1.pem
\ --cert~/certs/device.pem.crt
\ --key~/certs/private.pem.key
\ --regionus-east-1
\ --verbose warnL'exemple d'application de découverte envoie le message 10 fois et se déconnecte. Il s'abonne également au même sujet où il publie des messages. Si le résultat indique que l'application a reçu des messages MQTT sur le sujet, le dispositif client peut communiquer avec succès avec le dispositif principal.
Discovery Response: {"gg_groups":[{"gg_group_id":"greengrassV2-coreDevice-MyGreengrassCore","cores":[{"thing_arn":"arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore","connectivity":[{"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""}]}],"certificate_authorities":["-----BEGIN CERTIFICATE-----\n
MIICiT...EXAMPLE=
\n-----END CERTIFICATE-----\n"]}]} Trying endpoint={"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""} [WARN] [2021-06-12T00:46:45Z] [00007f90c0e8d700] [socket] - id=0x7f90b8018710 fd=26: setsockopt() for NO_SIGNAL failed with errno 92. If you are having SIGPIPE signals thrown, you may want to install a signal trap in your application layer. Connected to endpoint={"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":1} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":2} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":3} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":4} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":5} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":6} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":7} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":8} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":9} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":10} Complete!Si l'application génère plutôt une erreur, reportez-vous à la section Résolution des problèmes liés à la découverte de Greengrass.
Vous pouvez également consulter les journaux Greengrass sur l'appareil principal pour vérifier si le périphérique client se connecte et envoie des messages avec succès. Pour plus d’informations, consultez AWS IoT GreengrassJournaux de surveillance.
-
Tester les communications (Java)
Dans cette section, vous allez utiliser l'exemple de découverte de Greengrass dans la Kit SDK des appareils AWS IoTversion v2 pour Java pour
Important
Pour créer la Kit SDK des appareils AWS IoT v2 pour Java, un appareil doit disposer des outils suivants :
-
Java 8 ou version ultérieure, en
JAVA_HOME
pointant vers le dossier Java. -
Apache Maven
Pour tester les communications (Kit SDK des appareils AWS IoTv2 pour Java)
-
Téléchargez et compilez la Kit SDK des appareils AWS IoTv2 pour Java
sur l'AWS IoTappareil à connecter en tant que périphérique client. Sur l'appareil client, procédez comme suit :
-
Clonez le dépôt Kit SDK des appareils AWS IoT v2 pour Java pour le télécharger.
git clone https://github.com/aws/aws-iot-device-sdk-java-v2.git
-
Accédez au dossier Kit SDK des appareils AWS IoT v2 pour Java.
-
Compilez la Kit SDK des appareils AWS IoT v2 pour Java.
cd aws-iot-device-sdk-java-v2 mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*" mvn clean install
-
-
Exécutez l'exemple d'application de découverte Greengrass. Cette application attend des arguments qui spécifient le nom de l'objet du périphérique client, le sujet MQTT à utiliser et les certificats qui authentifient et sécurisent la connexion. L'exemple suivant s'abonne à la
clients/
rubrique et publie un message que vous entrez sur la ligne de commande pour la même rubrique.MyClientDevice1
/hello/world-
Remplacez les deux instances de
MyClientDevice1
par le nom de l'objet de l'appareil client. -
Remplacez
$HOME/certs/ AmazonRoot CA1.pem
par le chemin d'accès au certificat CA racine Amazon sur l'appareil client. -
Remplacez
$HOME/certs/device.pem.crt
par le chemin d'accès au certificat de périphérique sur le périphérique client. -
Remplacez
$HOME/certs/private.pem.key par le chemin d'accès au fichier de clé
privée sur l'appareil client. -
Remplacez
us-east-1
par l'Région AWSendroit où fonctionnent votre appareil client et votre appareil principal.
DISCOVERY_SAMPLE_ARGS="--thing_name
MyClientDevice1
\ --topic 'clients/MyClientDevice1
/hello/world' \ --ca_file$HOME/certs/AmazonRootCA1.pem
\ --cert$HOME/certs/device.pem.crt
\ --key$HOME/certs/private.pem.key
\ --regionus-east-1
" mvn exec:java -pl samples/Greengrass \ -Dexec.mainClass=greengrass.BasicDiscovery \ -Dexec.args="$DISCOVERY_SAMPLE_ARGS"L'exemple d'application Discovery s'abonne au sujet et vous invite à saisir un message à publier.
Connecting to group ID greengrassV2-coreDevice-MyGreengrassCore, with thing arn arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore, using endpoint 203.0.113.0:8883 Started a clean session Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press Enter. Type 'exit' or 'quit' to exit this program:
Si l'application génère plutôt une erreur, reportez-vous à la section Résolution des problèmes liés à la découverte de Greengrass.
-
-
Entrez un message, tel que
Hello World!
.Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press Enter. Type 'exit' or 'quit' to exit this program: Hello World!
Si le résultat indique que l'application a reçu le message MQTT sur le sujet, le dispositif client peut communiquer avec succès avec le dispositif principal.
Message received on topic clients/MyClientDevice1/hello/world: Hello World!
Vous pouvez également consulter les journaux Greengrass sur l'appareil principal pour vérifier si le périphérique client se connecte et envoie des messages avec succès. Pour plus d'informations, consultez AWS IoT GreengrassJournaux de surveillance.