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.
Création d'un appareil virtuel avec Amazon EC2
Dans ce didacticiel, vous allez créer une EC2 instance Amazon qui servira d'appareil virtuel dans le cloud.
Pour terminer ce didacticiel, vous avez besoin d'un Compte AWS. Si vous n'en avez pas, effectuez les étapes décrites dans la section Configurez Compte AWS avant de continuer.
Dans ce tutoriel, vous allez :
- Configuration d'une EC2 instance Amazon
- Installez Git, Node.js et configurez le AWS CLI
- Créez AWS IoT des ressources pour votre appareil virtuel
- Installez le AWS IoT périphérique SDK pour JavaScript
- Exécuter les exemples d'applications
- Afficher les messages de l'exemple d'application dans la AWS IoT console
Configuration d'une EC2 instance Amazon
Les étapes suivantes vous montrent comment créer une EC2 instance Amazon qui fera office d'appareil virtuel à la place d'un appareil physique.
Si c'est la première fois que vous créez une EC2 instance Amazon, vous trouverez peut-être les instructions de la section Commencer avec EC2Linux les instances Amazon plus utiles.
Pour lancer une instance
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans le menu de la console sur la gauche, développez la section Instances et choisissez Instances. Dans le tableau de bord Instances, choisissez Lancer les instances sur la droite pour afficher une liste des configurations de base.
-
Dans la section Nom et balises, entrez le nom de l'instance et ajoutez éventuellement des balises.
-
Dans la section Images de l'application et du système d'exploitation (Amazon Machine Image), choisissez un AMI modèle pour votre instance, tel qu'Amazon Linux 2 AMI (HVM). Notez que cette option AMI est marquée comme « éligible au niveau gratuit ».
-
Dans la section Type d'instance, vous pouvez sélectionner la configuration matérielle de votre instance. Sélectionnez le type
t2.micro
qui est sélectionné par défaut. Notez que ce type d'instance est éligible pour l'offre gratuite. -
Dans la section Key pair (Paire de clés [login]), choisissez un nom de paire de clés dans la liste déroulante ou choisissez Create a new key pair (Créer une paire de clés) pour en créer une. Lorsque vous créez une nouvelle paire de clés, assurez-vous de télécharger le fichier de clé privée et de l'enregistrer dans un endroit sûr, car c'est votre seule chance de le télécharger et de l'enregistrer. Vous devez fournir le nom de votre paire de clés quand vous lancez une instance, ainsi que la clé privée correspondante chaque fois que vous vous connectez à l'instance.
Avertissement
Ne choisissez pas l'option Continuer sans paire de clés. Si vous lancez votre instance sans une paire de clés, vous ne pourrez pas vous y connecter.
-
Dans les sections Paramètres réseau et Configuration du stockage, vous pouvez conserver les paramètres par défaut. Une fois que vous êtes prêt, choisissez Lancer les instances.
-
Une page de confirmation indique que l'instance est en cours de lancement. Sélectionnez View Instances pour fermer la page de confirmation et revenir à la console.
-
Sur l'écran Instances, vous pouvez afficher le statut du lancement. Il suffit de peu de temps pour lancer une instance. Lorsque vous lancez une instance, son état initial est
pending
. Après le démarrage de l'instance, son état devientrunning
et elle reçoit un DNS nom public. (Si la colonne Public DNS (IPv4) est masquée, choisissez Afficher/Masquer les colonnes (icône en forme d'engrenage) dans le coin supérieur droit de la page, puis sélectionnez Public DNS ().) IPv4 -
Cela peut prendre quelques minutes avant que l'instance soit prête pour que vous puissiez vous y connecter. Vérifiez que votre instance a réussi ses contrôles de statut ; vous pouvez voir cette information dans la colonne Status Checks.
Une fois que le statut de votre nouvelle instance a été vérifié, passez à la procédure suivante et connectez-vous à celle-ci.
Pour vous connecter à votre instance
Vous pouvez vous connecter à une instance à l'aide du client basé sur un navigateur en sélectionnant l'instance depuis la EC2 console Amazon et en choisissant de vous connecter à l'aide d'Amazon Instance EC2 Connect. Instance Connect gère les autorisations et fournit une connexion réussie.
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans le menu de gauche, choisissez Instances.
-
Sélectionnez l’instance, puis choisissez Connect (Connexion).
-
Choisissez Amazon EC2 Instance Connect, Connect.
Vous devriez maintenant avoir une fenêtre Amazon EC2 Instance Connect connectée à votre nouvelle EC2 instance Amazon.
Installez Git, Node.js et configurez le AWS CLI
Dans cette section, vous allez installer Git et Node.js sur votre instance Linux.
Pour installer Git
-
Dans votre fenêtre Amazon EC2 Instance Connect, mettez à jour votre instance à l'aide de la commande suivante.
sudo yum update -y
-
Dans votre fenêtre Amazon EC2 Instance Connect, installez Git à l'aide de la commande suivante.
sudo yum install git -y
-
Pour vérifier si Git a été installé et si la version actuelle de Git est installée, exécutez la commande suivante :
git --version
Pour installer Node.js
-
Dans votre fenêtre Amazon EC2 Instance Connect, installez le gestionnaire de version de nœud (nvm) à l'aide de la commande suivante.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
Nous allons utiliser nvm pour installer Node.js, car il peut installer plusieurs versions de Node.js et vous permettre de passer de l'une à l'autre.
-
Dans votre fenêtre Amazon EC2 Instance Connect, activez nvm à l'aide de cette commande.
. ~/.nvm/nvm.sh
-
Dans votre fenêtre Amazon EC2 Instance Connect, utilisez nvm pour installer la dernière version de Node.js à l'aide de cette commande.
nvm install 16
Note
Cela installe la dernière LTS version de Node.js.
L'installation de Node.js installe également le gestionnaire de package de nœud (npm), ce qui vous permet d'installer des modules supplémentaires si besoin.
-
Dans votre fenêtre Amazon EC2 Instance Connect, vérifiez que Node.js est installé et s'exécute correctement à l'aide de cette commande.
node -e "console.log('Running Node.js ' + process.version)"
Ce didacticiel nécessite Nœud v10.0 ou une version ultérieure. Pour plus d'informations, consultez Tutoriel : Configuration de Node.js sur une EC2 instance Amazon.
Pour configurer AWS CLI
Votre EC2 instance Amazon est préchargée avec le AWS CLI. Cependant, vous devez compléter votre AWS CLI profil. Pour plus d'informations sur la configuration de votre CLI AWS CLI.
-
L'exemple suivant montre des exemples de valeurs. Remplacez les par vos propres valeurs. Vous pouvez trouver ces valeurs dans votre AWS console, dans les informations de votre compte sous Identifiants de sécurité
. Dans votre fenêtre Amazon EC2 Instance Connect, entrez cette commande :
aws configure
Entrez ensuite les valeurs de votre compte en suivant les instructions affichées.
AWS Access Key ID [None]:
AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]:us-west-2
Default output format [None]:json
-
Vous pouvez tester votre AWS CLI configuration à l'aide de cette commande :
aws iot describe-endpoint --endpoint-type iot:Data-ATS
Si vous êtes correctement AWS CLI configuré, la commande doit renvoyer une adresse de point de terminaison provenant de votre Compte AWS.
Créez AWS IoT des ressources pour votre appareil virtuel
Cette section décrit comment utiliser le AWS CLI pour créer l'objet objet et ses fichiers de certificat directement sur le périphérique virtuel. Cela se fait directement sur l'appareil afin d'éviter les complications potentielles qui pourraient découler de leur copie à partir d'un autre ordinateur. Dans cette section, vous allez créer les ressources suivantes pour votre appareil virtuel :
-
Un objet dans lequel représenter votre appareil virtuel AWS IoT.
-
Un certificat pour authentifier votre appareil virtuel.
-
Document de politique autorisant votre appareil virtuel à se connecter aux messages AWS IoT, à les publier, à les recevoir et à s'y abonner.
Pour créer un AWS IoT objet dans votre instance Linux
Les appareils connectés AWS IoT sont représentés par des objets dans le AWS IoT registre. Un objet représente un appareil spécifique ou une entité logique. Dans ce cas, votre objet objet représentera votre appareil virtuel, cette EC2 instance Amazon.
-
Dans votre fenêtre Amazon EC2 Instance Connect, exécutez la commande suivante pour créer votre objet objet.
aws iot create-thing --thing-name "MyIotThing"
-
La JSON réponse devrait ressembler à ceci :
{ "thingArn": "arn:aws:iot:
your-region
:your-aws-account
:thing/MyIotThing", "thingName": "MyIotThing", "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE
" }
Pour créer et joindre AWS IoT des clés et des certificats dans votre instance Linux
La commande create-keys-and-certificate
-
Dans votre fenêtre Amazon EC2 Instance Connect, créez un répertoire pour stocker vos fichiers de certificat et de clé.
mkdir ~/certs
-
Dans votre fenêtre Amazon EC2 Instance Connect, téléchargez une copie du certificat de l'autorité de certification Amazon (CA) à l'aide de cette commande.
curl -o ~/certs/Amazon-root-CA-1.pem \ https://www.amazontrust.com/repository/AmazonRootCA1.pem
-
Dans votre fenêtre Amazon EC2 Instance Connect, exécutez la commande suivante pour créer vos fichiers de clé privée, de clé publique et de certificat X.509. Cette commande enregistre et active également le certificat avec AWS IoT.
aws iot create-keys-and-certificate \ --set-as-active \ --certificate-pem-outfile "~/certs/device.pem.crt" \ --public-key-outfile "~/certs/public.pem.key" \ --private-key-outfile "~/certs/private.pem.key"
La réponse se présente comme suit. Enregistrez le
certificateArn
afin de pouvoir l'utiliser dans les commandes suivantes. Vous en aurez besoin pour joindre votre certificat à votre objet et pour associer la politique au certificat ultérieurement.{ "certificateArn": "
arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2
", "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2
", "certificatePem": " -----BEGIN CERTIFICATE-----MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
-----END CERTIFICATE-----\n", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n
-----END PUBLIC KEY-----\n", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n
-----END RSA PRIVATE KEY-----\n" } } -
Dans votre fenêtre Amazon EC2 Instance Connect, attachez votre objet au certificat que vous venez de créer à l'aide de la
certificateArn
commande suivante et de la réponse de la commande précédente.aws iot attach-thing-principal \ --thing-name "MyIotThing" \ --principal "
certificateArn
"En cas de succès, cette commande n'affiche aucune sortie.
Pour créer et attacher une politique
-
Dans votre fenêtre Amazon EC2 Instance Connect, créez le fichier de politique en copiant et en collant ce document de politique dans un fichier nommé
~/policy.json
.Si vous n'en avez pas, vous pouvez ouvrir nano à l'aide de cette commande.
nano ~/policy.json
Collez-y le document de politique pour
policy.json
. Faites ctrl-x pour quitter l'éditeur nano et enregistrer le fichier.Contenu du document de politique pour
policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect" ], "Resource": [ "*" ] } ] }
-
Dans votre fenêtre Amazon EC2 Instance Connect, créez votre politique à l'aide de la commande suivante.
aws iot create-policy \ --policy-name "MyIotThingPolicy" \ --policy-document "file://~/policy.json"
Sortie :
{ "policyName": "MyIotThingPolicy", "policyArn": "arn:aws:iot:
your-region
:your-aws-account
:policy/MyIotThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\", \"iot:Subscribe\", \"iot:Connect\" ], \"Resource\": [ \"*\" ] } ] }", "policyVersionId": "1" } -
Dans votre fenêtre Amazon EC2 Instance Connect, associez la politique au certificat de votre appareil virtuel à l'aide de la commande suivante.
aws iot attach-policy \ --policy-name "MyIotThingPolicy" \ --target "
certificateArn
"En cas de succès, cette commande n'affiche aucune sortie.
Installez le AWS IoT périphérique SDK pour JavaScript
Dans cette section, vous allez installer le AWS IoT Device SDK for JavaScript, qui contient le code avec lequel les applications peuvent communiquer, AWS IoT ainsi que les exemples de programmes. Pour plus d'informations, consultez la section AWS IoT Appareil SDK pour le JavaScript GitHub référentiel
Pour installer le AWS IoT périphérique SDK JavaScript sur votre instance Linux
-
Dans votre fenêtre Amazon EC2 Instance Connect, clonez l' AWS IoT appareil SDK pour le JavaScript déposer dans le
aws-iot-device-sdk-js-v2
répertoire de votre répertoire personnel à l'aide de cette commande.cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
-
Accédez au répertoire
aws-iot-device-sdk-js-v2
que vous avez créé à l'étape précédente.cd aws-iot-device-sdk-js-v2
-
Utilisez npm pour installer le. SDK
npm install
Exécuter les exemples d'applications
Les commandes des sections suivantes supposent que vos fichiers de clé et de certificat sont stockés sur votre appareil virtuel comme indiqué dans ce tableau.
Fichier |
Chemin d'accès du fichier |
---|---|
Clé privée |
|
Certificat de l'appareil |
|
Certificat racine de l'autorité de certification |
|
Dans cette section, vous allez installer et exécuter l'pub-sub.js
exemple d'application qui se trouve dans le aws-iot-device-sdk-js-v2/samples/node
répertoire de l' AWS IoT appareil SDK pour JavaScript. Cette application montre comment un appareil, votre EC2 instance Amazon, utilise la MQTT bibliothèque pour publier des MQTT messages et s'y abonner. L'exemple d'application pub-sub.js
s'abonne à une rubrique, topic_1
, publie 10 messages sur cette rubrique et affiche les messages au fur et à mesure qu'ils sont reçus de l’agent de messages.
Pour installer et exécuter l'exemple d'application
-
Dans votre fenêtre Amazon EC2 Instance Connect, accédez au
aws-iot-device-sdk-js-v2/samples/node/pub_sub
répertoire dans lequel vous avez SDK créé et installez l'exemple d'application à l'aide de ces commandes.cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
-
Dans votre fenêtre Amazon EC2 Instance Connect, accédez
your-iot-endpoint
à partir de à AWS IoT l'aide de cette commande.aws iot describe-endpoint --endpoint-type iot:Data-ATS
-
Dans votre fenêtre Amazon EC2 Instance Connect, insérez
your-iot-endpoint
comme indiqué et exécutez cette commande.node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint
your-iot-endpoint
Exemple d'application :
-
Se connecte AWS IoT Core à votre compte.
-
S'abonne à la rubrique du message, topic_1, et affiche les messages qu'il reçoit à cette rubrique.
-
Publie 10 messages dans la rubrique topic_1.
-
Affiche une sortie similaire à celle-ci :
Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":1} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":2} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":3} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":4} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":5} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":6} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":7} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":8} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":9} Publish received. topic:"topic_1" dup:false qos:1 retain:false {"message":"Hello world!","sequence":10}
Si vous rencontrez des difficultés en exécutant l'exemple d'application, veuillez consulter Résoudre les problèmes liés à l'exemple d'application.
Vous pouvez également ajouter le paramètre --verbosity debug
sur la ligne de commande afin que l'exemple d'application affiche des messages détaillés sur ce qu'elle fait. Ces informations peuvent vous fournir l'aide dont vous avez besoin pour corriger le problème.
Afficher les messages de l'exemple d'application dans la AWS IoT console
Vous pouvez voir les messages de l'application d'exemple lorsqu'ils passent par le courtier de messages en utilisant le client de MQTT test dans la AWS IoT console.
Pour consulter les MQTT messages publiés par l'exemple d'application
-
Consultez Afficher MQTT les messages avec le AWS IoT MQTT client. Cela vous permet d'apprendre à utiliser le client de MQTT test dans la AWS IoT console pour afficher les MQTT messages lorsqu'ils transitent par le courtier de messages.
-
Ouvrez le client de MQTT test dans la AWS IoT console.
-
Dans S'abonner à une rubrique, S'abonner à la rubrique, topic_1.
-
Dans votre fenêtre Amazon EC2 Instance Connect, réexécutez l'exemple d'application et regardez les messages du client de MQTT test dans la AWS IoT console.
cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint
your-iot-endpoint
Pour plus d'informations sur le protocole MQTT et la manière dont il le AWS IoT Core prend en charge, consultez MQTT.