Démarrage rapide : Déployer votre premier module IoT Edge sur un appareil virtuel Linux
S’applique à : IoT Edge 1.5
IoT Edge 1.4
Important
IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Testez Azure IoT Edge dans ce guide de démarrage rapide en déployant du code conteneurisé sur un appareil IoT Edge Linux virtuel. IoT Edge vous permet de gérer à distance du code sur vos appareils afin que vous puissiez envoyer plus de charges de travail à la périphérie. Pour ce démarrage rapide, nous vous recommandons d’utiliser une machine virtuelle Azure pour votre appareil IoT Edge, ce qui vous permet de créer rapidement une machine de test, puis de la supprimer une fois que vous avez terminé.
Dans ce guide de démarrage rapide, vous apprenez à :
- Créez un IoT Hub.
- Inscrivez un appareil IoT Edge dans votre IoT Hub.
- Installez et démarrez le runtime IoT Edge sur un appareil virtuel.
- Déployez à distance un module vers un appareil IoT Edge.
Ce guide de démarrage rapide vous explique comment créer une machine virtuelle Linux configurée pour être un appareil IoT Edge. Ensuite, vous déployez un module depuis le portail Azure vers votre appareil. Le module utilisé dans ce guide de démarrage rapide est un capteur simulé qui génère des données de pression, d’humidité et de température. Les autres tutoriels Azure IoT Edge s’appuient sur le travail que vous effectuez ici en déployant des modules supplémentaires qui analysent les données simulées des insights métier.
Si vous n’avez pas d’abonnement Azure actif, créez un compte gratuit avant de commencer.
Prérequis
Préparez votre environnement pour l’interface Azure CLI.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Ressources cloud :
Un groupe de ressources permettant de gérer toutes les ressources que vous utilisez lors de ce démarrage rapide. Nous utilisons l’exemple de nom de groupe de ressources IoTEdgeResources tout au long de ce guide de démarrage rapide et des tutoriels suivants.
az group create --name IoTEdgeResources --location westus2
Créer un hub IoT
Commencez le guide de démarrage rapide en créant un hub IoT avec Azure CLI.
Le niveau gratuit d'IoT Hub fonctionne pour ce démarrage rapide. Si vous avez utilisé IoT Hub par le passé et que vous avez créé un hub, vous pouvez utiliser ce hub IoT.
Le code suivant crée un hub gratuit F1 dans le groupe de ressources IoTEdgeResources. Remplacez {hub_name}
par un nom unique pour votre hub IoT. La création d’un hub IoT peut prendre plusieurs minutes.
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
Si vous obtenez une erreur parce qu’un hub gratuit existe déjà dans votre abonnement, remplacez la référence SKU par S1. Chaque abonnement peut avoir uniquement un IoT hub gratuit. Si vous recevez une erreur indiquant que le nom du hub IoT n’est pas disponible, cela signifie que quelqu’un d’autre a déjà un hub portant ce nom. Essayez avec un autre nom.
Enregistrer un appareil IoT Edge
Inscrivez l’appareil IoT Edge avec votre IoT Hub récemment créé.
Créez une identité d’appareil pour votre appareil IoT Edge afin qu’il puisse communiquer avec votre IoT Hub. L’identité d’appareil se trouve dans le cloud, et une chaîne unique de connexion d’appareil vous permet d’associer un appareil physique à une identité d’appareil.
Étant donné que le comportement et la gestion des appareils IoT Edge peuvent être différents de ceux des appareils IoT standard, déclarez cette identité en indiquant qu’elle est destinée à un appareil IoT Edge avec l’indicateur --edge-enabled
.
Dans Azure Cloud Shell, entrez la commande suivante pour créer un appareil nommé myEdgeDevice dans votre hub.
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
Si vous recevez une erreur relative aux clés de stratégie iothubowner, vérifiez que votre instance de Cloud Shell exécute la dernière version de l’extension azure-iot.
Affichez la chaîne de connexion pour votre appareil, qui lie votre appareil physique à l’aide de son identité dans IoT Hub. Elle contient le nom de votre hub IoT, le nom de votre appareil, puis une clé partagée qui authentifie les connexions entre les deux. Nous ferons référence à cette chaîne de connexion dans la section suivante quand vous configurerez votre appareil IoT Edge.
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
Par exemple, votre chaîne de connexion devrait ressembler à
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>
.
Configurer votre appareil IoT Edge
Créez une machine virtuelle avec le runtime Azure IoT Edge.
Le runtime IoT Edge est déployé sur tous les appareils IoT Edge. Il comprend trois composants. Le démon de sécurité IoT Edge démarre chaque fois qu’un appareil IoT Edge démarre et amorce l’appareil en démarrant l’agent IoT Edge. L’agent IoT Edge facilite le déploiement et la surveillance des modules sur l’appareil IoT Edge, notamment le hub IoT Edge. Le hub IoT Edge gère les communications entre les modules sur l’appareil IoT Edge et entre l’appareil et IoT Hub.
Pendant la configuration du runtime, vous fournissez une chaîne de connexion d’appareil. Il s’agit de la chaîne que vous avez récupérée à partir d’Azure CLI. Cette chaîne associe votre appareil physique à l’identité d’appareil IoT Edge dans Azure.
Déployer l’appareil IoT Edge
Cette section utilise un modèle Azure Resource Manager pour créer une machine virtuelle et y installer le runtime IoT Edge. Pour utiliser votre propre appareil Linux à la place, vous pouvez suivre les étapes d’installation indiquées dans Provisionner manuellement un appareil Linux IoT Edge, puis revenir à ce guide de démarrage rapide.
Utilisez le bouton Déployer sur Azure ou les commandes CLI pour créer votre appareil IoT Edge basé sur le modèle iotedge-vm-deploy prédéfini.
Déployez à l’aide du modèle Azure Resource Manager IoT Edge.
Si vous utilisez Bash ou Cloud Shell, copiez la commande suivante dans un éditeur de texte, remplacez le texte d’espace réservé par vos informations, puis collez la commande dans votre fenêtre Bash ou Cloud Shell :
az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \ --parameters adminUsername='azureUser' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \ --parameters authenticationType='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
Si vous utilisez PowerShell, copiez la commande suivante dans votre fenêtre PowerShell, puis remplacez le texte des espaces réservés par vos propres informations :
az deployment group create ` --resource-group IoTEdgeResources ` --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" ` --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' ` --parameters adminUsername='azureUser' ` --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) ` --parameters authenticationType='password' ` --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
Ce modèle prend les paramètres suivants :
Paramètre | Description |
---|---|
resource-group | Groupe de ressources dans lequel les ressources seront créées. Utilisez le nom IoTEdgeResources par défaut que nous avons utilisé dans cet article ou fournissez le nom d’un groupe de ressources existant dans votre abonnement. |
template-uri | Pointeur vers le modèle Resource Manager que nous utilisons. |
dnsLabelPrefix | Chaîne qui sera utilisée pour créer le nom d’hôte de la machine virtuelle. Remplacez le texte de l’espace réservé par le nom de votre machine virtuelle. |
adminUsername | Nom d’utilisateur du compte administrateur de la machine virtuelle. Utilisez l’exemple azureUser ou indiquez un nouveau nom d’utilisateur. |
deviceConnectionString | Chaîne de connexion de l’identité d’appareil dans IoT Hub, qui est utilisée pour configurer le runtime IoT Edge sur la machine virtuelle. La commande CLI dans ce paramètre récupère la chaîne de connexion pour vous. Remplacez le texte de l’espace réservé par le nom de votre hub IoT. |
authenticationType | Méthode d’authentification pour le compte administrateur. Ce guide de démarrage rapide utilise l’authentification par mot de passe (password), mais vous pouvez également définir ce paramètre sur sshPublicKey. |
adminPasswordOrKey | Mot de passe ou valeur de la clé SSH pour le compte administrateur. Remplacez le texte de l’espace réservé par un mot de passe sécurisé. Votre mot de passe doit comporter au moins 12 caractères, choisis dans trois des quatre catégories suivantes : caractères minuscules, caractères majuscules, chiffres et caractères spéciaux. |
Une fois le déploiement terminé, vous devez recevoir dans l’interface CLI une sortie au format JSON qui contient les informations SSH pour la connexion à la machine virtuelle. Copiez la valeur de l’entrée public SSH de la section outputs. Par exemple, votre commande SSH devrait ressembler à ssh [email protected]
.
Afficher l’état du runtime IoT Edge
Les autres commandes de ce guide sont exécutées sur votre appareil IoT Edge lui-même, afin que vous puissiez voir ce qui s’y passe concrètement. Si vous utilisez une machine virtuelle, connectez-vous maintenant à celle-ci à l’aide du nom d’utilisateur administrateur que vous avez configuré et du nom DNS qui a été généré par la commande de déploiement. Vous pouvez également trouver le nom DNS dans la page Vue d’ensemble de la machine virtuelle dans le portail Azure. Utilisez la commande suivante pour vous connecter à votre machine virtuelle. Remplacez {admin username}
et {DNS name}
par vos propres valeurs.
ssh {admin username}@{DNS name}
Une fois connecté à votre machine virtuelle, vérifiez que le runtime a été correctement installé et configuré sur votre appareil IoT Edge.
Vérifiez qu’IoT Edge est en cours d’exécution. La commande suivante doit retourner l’état OK si IoT Edge est en cours d’exécution, ou fournir des erreurs de service.
sudo iotedge system status
Conseil
Vous avez besoin de privilèges élevés pour exécuter les commandes
iotedge
. Une fois que vous vous déconnectez de votre machine et que vous vous reconnectez pour la première fois après avoir installé le runtime IoT Edge, vos autorisations sont automatiquement mises à jour. Dans l’intervalle, ajoutezsudo
devant les commandes.Si vous avez besoin de résoudre les problèmes du service, récupérez les journaux d’activité de ce dernier.
sudo iotedge system logs
Affichez tous les modules s’exécutant sur votre appareil IoT Edge. Comme le service vient de démarrer pour la première fois, vous devez uniquement voir le module edgeAgent en cours d’exécution. Le module edgeAgent s’exécute par défaut et vous aide à installer et démarrer tous les modules supplémentaires que vous déployez sur votre appareil.
sudo iotedge list
Votre appareil IoT Edge est maintenant configuré. Il est prêt à exécuter les modules déployés dans le cloud.
Déployer un module
Gérez votre appareil Azure IoT Edge depuis le cloud pour déployer un module qui transmettra des données de télémétrie à IoT Hub.
Le déploiement de code sur vos appareils IoT Edge à partir du cloud constitue l’une des fonctionnalités clés d’Azure IoT Edge. Les modules IoT Edge sont des packages exécutables implémentés en tant que conteneurs. Dans cette section, vous allez déployer un module prédéfini à partir de la section Modules IoT Edge du Registre des artefacts Microsoft.
Le module que vous déployez dans cette section simule un capteur et envoie les données générées. Ce module s’avère être un extrait de code utile quand vous prenez en main IoT Edge, car vous pouvez utiliser les données simulées à des fins de développement et de test. Si vous souhaitez voir exactement ce que fait ce module, vous pouvez afficher le code source du capteur de température simulé.
Effectuez ces étapes pour déployer votre premier module.
Connectez-vous au portail Azure et accédez à votre IoT Hub.
Dans le menu de gauche, sous Gestion des appareils, sélectionnez Appareils.
Sélectionnez l’ID d’appareil de l’appareil IoT Edge cible dans la liste.
Lorsque vous créez un appareil IoT Edge, le code d’état
417 -- The device's deployment configuration is not set
s’affiche dans le portail Azure. Cet état est normal et signifie que l’appareil est prêt à recevoir un déploiement de module.Dans la barre supérieure, sélectionnez Définir des modules.
Choisissez les modules que vous souhaitez exécuter sur votre appareil. Vous pouvez choisir parmi les modules que vous avez créés vous-même ou des images dans un registre de conteneurs. Dans ce guide de démarrage rapide, vous allez déployer un module à partir du registre de conteneurs Microsoft.
Dans la section Modules IoT Edge, sélectionnez Ajouter, puis choisissez Module IoT Edge.
Mettez à jour les paramètres de module suivants :
Paramètre Valeur Nom du module IoT SimulatedTemperatureSensor
URI d’image mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
Stratégie de redémarrage toujours État souhaité exécution en cours Sélectionnez Suivant : Itinéraires pour continuer à configurer des itinéraires.
Ajoutez une route qui envoie tous les messages du module de température simulé à IoT Hub.
Paramètre Valeur Nom SimulatedTemperatureSensorToIoTHub
Valeur FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
Sélectionnez Suivant : Vérifier + créer.
Passez en revue le fichier JSON, puis sélectionnez Créer. Le fichier JSON définit tous les modules que vous déployez sur votre appareil IoT Edge.
Notes
Quand vous envoyez un nouveau déploiement à un appareil IoT Edge, rien n’est envoyé en mode push à votre appareil. Au lieu de cela, l’appareil interroge régulièrement IoT Hub pour connaître les nouvelles instructions. Si l’appareil détecte un manifeste de déploiement mis à jour, il utilise les informations sur le nouveau déploiement pour extraire les images de module à partir du cloud, puis commence à exécuter localement les modules. Ce processus peut prendre plusieurs minutes.
Une fois que vous avez créé les détails de déploiement du module, l’Assistant vous renvoie à la page de détails de l’appareil. Visualisez l’état du déploiement sous l’onglet Modules.
Vous devez voir trois modules : $edgeAgent, $edgeHub et SimulatedTemperatureSensor. Si la valeur Oui apparaît dans la colonne Spécifié dans le déploiement mais pas dans la colonne Signalé par l’appareil pour un ou plusieurs modules, cela signifie que votre appareil IoT Edge est encore en train de les démarrer. Attendez quelques minutes, puis actualisez la page.
Si vous rencontrez des problèmes lors du déploiement des modules, consultez Résolution des problèmes des appareils IoT Edge à partir du portail Azure.
Afficher les données générées
Dans ce guide de démarrage rapide, vous avez créé un nouveau périphérique IoT Edge et installé le runtime IoT Edge. Puis vous avez utilisé le portail Azure pour déployer un module IoT Edge afin de l’exécuter sur l’appareil sans avoir à apporter des modifications à l’appareil lui-même.
Dans ce cas, le module que vous avez envoyé (push) génère des exemples de données d’environnement que vous pouvez utiliser pour les tests ultérieurement. Le capteur simulé surveille à la fois une machine et l’environnement de la machine. Par exemple, ce capteur peut être installé dans une salle de serveurs, dans une usine ou sur une éolienne. Le message inclut la température et l’humidité ambiantes, la température et la pression de la machine ainsi qu’un horodatage. Les tutoriels IoT Edge se servent des données créées par ce module comme données de test pour l’analytique.
Rouvrez l’invite de commandes sur votre appareil IoT Edge ou utilisez la connexion SSH à partir d’Azure CLI. Confirmez que le module déployé à partir du cloud est en cours d’exécution sur votre appareil IoT Edge :
sudo iotedge list
Consultez les messages envoyés par le module de capteur de température :
sudo iotedge logs SimulatedTemperatureSensor -f
Conseil
Les commandes IoT Edge respectent la casse quand vous référencez les noms de module.
Nettoyer les ressources
Si vous souhaitez poursuivre les didacticiels IoT Edge, vous pouvez utiliser l’appareil que vous avez inscrit et configuré dans ce démarrage rapide. Sinon, vous pouvez supprimer les ressources Azure que vous avez créées dans cet article pour éviter les frais.
Si vous avez créé votre machine virtuelle et un IoT Hub dans un nouveau groupe de ressources, vous pouvez supprimer ce groupe et toutes les ressources associées. Vérifiez le contenu du groupe de ressources pour être certain que vous ne voulez rien en conserver. Si vous ne voulez pas supprimer tout le groupe, vous pouvez supprimer des ressources individuelles.
Important
La suppression d’un groupe de ressources est irréversible.
Supprimez le groupe IoTEdgeResources. La suppression d’un groupe de ressources peut prendre plusieurs minutes.
az group delete --name IoTEdgeResources --yes
Vous pouvez vérifier que le groupe de ressources est supprimé en consultant la liste des groupes de ressources.
az group list
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez créé un appareil IoT Edge et utilisé l’interface cloud Azure IoT Edge pour déployer du code sur l’appareil. Vous possédez désormais un appareil de test générant des données brutes sur son environnement.
Dans le tutoriel suivant, vous apprendrez à surveiller l’activité et l’intégrité de votre appareil à partir du portail Azure.