Partager via


Démarrage rapide : Déployer votre premier module IoT Edge sur un appareil Linux virtuel

S'applique à :IoT Edge 1.5 cocher IoT Edge 1.5

Important

IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1,4 LTS a atteint la fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez Update IoT Edge.

Essayez 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 le code sur vos appareils afin de pouvoir envoyer davantage de charges de travail à la périphérie. Pour ce guide de démarrage rapide, utilisez une machine virtuelle Azure pour votre appareil IoT Edge. Il vous permet de créer rapidement une machine de test et de la supprimer lorsque vous avez terminé.

Dans ce guide de démarrage rapide, vous apprenez à :

  • Créez un IoT Hub.
  • Inscrivez un appareil IoT Edge sur votre hub IoT.
  • Installez et démarrez le runtime IoT Edge sur un appareil virtuel.
  • Déployez un module à distance sur un appareil IoT Edge.

Diagramme - Démarrage rapide : architecture pour appareil et cloud.

Ce guide de démarrage rapide vous guide tout au long de la création d'une machine virtuelle Linux configurée pour être un appareil IoT Edge. Ensuite, vous déployez un module à partir du portail Azure sur votre appareil. Ce guide de démarrage rapide utilise un module de capteur simulé qui génère des données de température, d’humidité et de pression. Les autres didacticiels 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 pour les insights métier.

Si vous n'avez pas d'abonnement actif Azure, créez un compte free avant de commencer.

Prérequis

Configurez votre environnement pour le Azure CLI.

Un groupe de ressources permettant de gérer toutes les ressources que vous utilisez lors de ce démarrage rapide. Ce guide de démarrage rapide et les didacticiels suivants utilisent l’exemple de nom de groupe de ressources IoTEdgeResources.

az group create --name IoTEdgeResources --location westus2

Créer un IoT Hub

Démarrez le quickstart en créant un IoT Hub avec Azure CLI.

Diagram qui montre comment créer un IoT Hub dans le cloud.

Le niveau gratuit d'IoT Hub fonctionne pour cette mise en route rapide. Si vous avez utilisé IoT Hub dans le passé et que vous avez déjà créé un hub, vous pouvez utiliser cette IoT hub.

Le code suivant crée un hub gratuit F1 dans le groupe de ressources IoTEdgeResources. Remplacez <hub-name> par un nom unique pour votre IoT Hub. La création d’un IoT Hub peut prendre quelques minutes.

az iot hub create --resource-group IoTEdgeResources --name <hub-name> --sku F1 --partition-count 2

Si vous recevez une erreur, car il existe déjà une IoT Hub gratuite dans votre abonnement, remplacez la référence SKU par S1. Chaque abonnement peut avoir uniquement un IoT hub gratuit. Si vous obtenez une erreur indiquant que le nom IoT Hub n'est pas disponible, cela signifie que quelqu'un d'autre a déjà un hub portant ce nom. Essayez avec un autre nom.

Inscrire un appareil IoT Edge

Inscrivez un appareil IoT Edge auprès du hub IoT que vous venez de créer.

Diagramme de l’inscription d’un appareil auprès d’une identité de IoT Hub.

Créez une identité d’appareil pour votre appareil IoT Edge afin qu’il puisse communiquer avec votre ioT Hub. L’identité de l’appareil réside dans le cloud et vous utilisez une chaîne de connexion unique pour l'appareil pour associer un appareil physique à une identité d’appareil.

Étant donné que IoT Edge appareils se comportent et sont gérés différemment des appareils IoT classiques, déclarez cette identité en tant qu’appareil IoT Edge à l’aide de l’indicateur --edge-enabled.

  1. Entrez la commande suivante dans Azure Cloud Shell 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 concernant les clés de stratégie iothubowner, vérifiez que votre Cloud Shell exécute la dernière version de l'extension azure-iot.

  2. Vérifiez la connection string de votre appareil, qui lie l’appareil physique à son identité dans IoT Hub. Il inclut le nom de votre IoT Hub, le nom de votre appareil et une clé partagée qui authentifie les connexions entre eux. Vous utilisez cette connection string à nouveau dans la section suivante pour configurer votre appareil IoT Edge.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <hub-name>
    

    Par exemple, le connection string doit 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.

Diagramme montrant comment démarrer le runtime sur un appareil.

Le runtime IoT Edge est déployé sur tous les appareils IoT Edge et comporte trois composants. Le démon de sécurité IoT Edge se lance chaque fois qu’un appareil IoT Edge démarre et initialise 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, y compris 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 l’IoT Hub.

Pendant la configuration du temps d'exécution, fournissez une chaîne de connexion pour l'appareil. Cette chaîne est récupérée à partir de la Azure CLI. Cette chaîne associe votre appareil physique à l’identité de l’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 installer le runtime IoT Edge sur celui-ci. Si vous souhaitez utiliser votre propre appareil Linux à la place, vous pouvez suivre les étapes d’installation de Manually provisionner un seul appareil Linux IoT Edge, puis revenir à ce guide de démarrage rapide.

Utilisez le bouton Deploy pour Azure ou les commandes CLI pour créer un appareil IoT Edge basé sur le modèle prédéfini iotedge-vm-deploy.

  • Déployez à l’aide du modèle IoT Edge Azure Resource Manager.

    Deploy to Azure

  • Pour les utilisateurs bash ou Cloud Shell, copiez la commande suivante dans un éditeur de texte, remplacez le texte de l’espace réservé par vos informations, puis copiez-les 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 sont 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 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 La chaîne de connexion de l’identité de l’appareil dans IoT Hub est utilisée pour configurer l'environnement d'exécution IoT Edge sur la machine virtuelle. La commande CLI associée à 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é, la sortie au format JSON dans l’interface CLI contient les informations SSH pour se connecter à la machine virtuelle. Copiez la valeur de l’entrée public SSH de la section outputs. Par exemple, votre commande SSH devrait ressembler à ssh azureUser@edge-vm.westus2.cloudapp.azure.com.

Afficher l’état du runtime IoT Edge

Le reste des commandes de ce guide de démarrage rapide se déroule sur votre appareil IoT Edge lui-même, afin que vous puissiez voir ce qui se passe sur l'appareil. 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 trouverez également le nom DNS dans la page de vue d'ensemble de votre 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.

  1. Vérifiez si IoT Edge est en cours d’exécution. La commande suivante retourne un état de Ok si IoT Edge est en cours d’exécution ou fournit 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 êtes déconnecté de votre ordinateur et reconnectez-vous la première fois après l’installation du runtime IoT Edge, vos autorisations sont automatiquement mises à jour. Dans l’intervalle, ajoutez sudo devant les commandes.

  2. 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
    
  3. Affichez tous les modules en cours d’exécution 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 à partir du cloud pour déployer un module qui envoie des données de télémétrie d’appareil à IoT Hub.

Diagramme montrant comment déployer un module du cloud vers un appareil.

Une fonctionnalité clé de Azure IoT Edge déploie du code sur vos appareils IoT Edge à partir du cloud. IoT Edge modules 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 Microsoft Artifact.

Le module que vous déployez dans cette section simule un capteur et envoie les données générées. Ce module est un élément de code utile lorsque vous commencez à utiliser IoT Edge, car vous pouvez utiliser les données simulées pour le développement et le test. Si vous souhaitez voir exactement ce que fait ce module, vous pouvez afficher le code source du capteur de température simulé.

Procédez comme suit pour déployer votre premier module.

  1. Connectez-vous au portail Azure et accédez à votre IoT Hub.

  2. Dans le menu de gauche, sous Device Management, sélectionnez Devices.

  3. Sélectionnez l’ID de l’appareil IoT Edge cible dans la liste.

    Lorsque vous créez un appareil IoT Edge, il affiche le code d’état 417 -- The device's deployment configuration is not set dans le portail Azure. Cet état est normal et signifie que l’appareil est prêt à recevoir un déploiement de module.

  4. Dans la barre supérieure, sélectionnez Définir des modules.

    Sélectionnez 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 déployez un module à partir du registre de conteneurs Microsoft.

  5. Dans la section IoT Edge modules, sélectionnez Add puis choisissez IoT Edge Module.

  6. 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
  7. Sélectionnez Suivant : Itinéraires pour continuer à configurer des itinéraires.

  8. Ajoutez un itinéraire qui envoie tous les messages du module de température simulée à IoT Hub.

    Paramètre Valeur
    Nom SimulatedTemperatureSensorToIoTHub
    Valeur FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Sélectionnez Suivant : Vérifier + créer.

  10. 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.

    Note

    Lorsque vous envoyez un nouveau déploiement à un appareil IoT Edge, rien n’est envoyé à votre appareil. Au lieu de cela, l’appareil interroge IoT Hub régulièrement pour obtenir de 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 un ou plusieurs modules ont Yes sous Specified in Deployment mais pas sous Reported by Device, votre appareil IoT Edge les démarre toujours. Attendez quelques minutes, puis actualisez la page.

Capture d’écran montrant le capteur de température simulé (SimulatedTemperatureSensor) dans la liste des modules déployés.

Si vous rencontrez des problèmes de déploiement de modules, découvrez-en plus dans Résoudre les problèmes des dispositifs IoT Edge depuis le portail Azure.

Afficher les données générées

Dans ce guide de démarrage rapide, vous créez un appareil IoT Edge et installez le runtime IoT Edge sur celui-ci. Ensuite, vous utilisez le portail Azure pour déployer un module IoT Edge à exécuter sur l’appareil sans apporter de 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 se trouver dans une salle de serveur, sur un étage d’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 didacticiels IoT Edge utilisent les données créées par ce module comme données de test pour l’analytique.

Ouvrez l’invite de commandes sur votre appareil IoT Edge ou utilisez la connexion SSH à partir de Azure CLI. Vérifiez que le module que vous avez déployé à partir du cloud s’exécute sur votre appareil IoT Edge :

sudo iotedge list

Capture d’écran montrant trois modules sur votre appareil.

Affichez les messages envoyés à partir du module capteur de température :

sudo iotedge logs SimulatedTemperatureSensor -f

Capture d’écran montrant les données de votre module dans la console de sortie.

Conseil

Les commandes IoT Edge respectent la casse pour faire référence aux noms de module.

Nettoyer les ressources

Pour continuer avec les didacticiels IoT Edge, utilisez l’appareil que vous avez inscrit et configuré dans ce guide de démarrage rapide. Sinon, supprimez les ressources Azure que vous avez créées 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 vous assurer qu’il n’y a rien à 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 quelques minutes.

az group delete --name IoTEdgeResources --yes

Vérifiez 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. À présent, vous utilisez un appareil de test qui génère des données brutes sur son environnement.

Dans le tutoriel suivant, vous allez apprendre à surveiller l'activité et l'intégrité de votre appareil à partir du portail Azure.