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

S’applique à :Coche IoT Edge 1.4 IoT Edge 1.4

Essayez Azure IoT Edge dans ce guide de démarrage rapide en déployant du code conteneurisé sur un appareil IoT Edge Linux sur Windows. 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 guide de démarrage rapide, nous vous recommandons d’utiliser votre propre appareil client Windows pour voir combien il est facile d’utiliser Azure IoT Edge pour Linux sur Windows. Si vous souhaitez utiliser Windows Server ou une machine virtuelle Azure pour créer votre déploiement, suivez les étapes décrites dans le guide pratique sur l’installation et l’approvisionnement d’Azure IoT Edge pour Linux sur un appareil Windows.

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

  • Créez un hub IoT.
  • Inscrivez un appareil IoT Edge dans votre IoT Hub.
  • Installer et démarrer le runtime IoT Edge pour Linux sur Windows sur votre appareil.
  • Déployer à distance un module sur un appareil IoT Edge et envoyer des données de télémétrie.

Diagramme illustrant l’architecture de ce guide de démarrage rapide pour votre appareil et votre cloud.

Ce guide de démarrage rapide vous guide tout au long de la configuration de votre appareil Azure IoT Edge pour Linux sur Windows. Ensuite, vous déploierez un module du portail Azure sur votre appareil. Le module que vous utiliserez est un capteur simulé qui génère des données de pression, d’humidité et de température. D’autres tutoriels Azure IoT Edge s’appuient sur le travail que vous effectuez ici en déployant des modules qui analysent les données simulées pour obtenir 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.

Créez un groupe de ressources cloud permettant de gérer toutes les ressources que vous utilisez dans le cadre de ce guide de démarrage rapide.

az group create --name IoTEdgeResources --location westus2

Assurez-vous que votre appareil IoT Edge répond à la configuration requise suivante :

  • Configuration requise

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 Windows 10 version minimale 17763 avec toutes les mises à jour cumulatives actuelles installées.
  • Configuration matérielle requise

    • Mémoire disponible minimale : 1 Go
    • Espace disque disponible minimal : 10 Go

Créer un hub IoT

Commencez en créant un hub IoT avec Azure CLI.

Diagramme illustrant l’étape de création d’un hub IoT.

Le niveau gratuit d’Azure IoT Hub fonctionne pour ce guide de 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 F1 gratuit dans le groupe de ressources IoTEdgeResources. Remplacez {hub_name} par un nom unique pour votre hub IoT. La création de votre 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 que vous disposez déjà d’un hub gratuit dans votre abonnement, remplacez la référence SKU par S1. 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éé.

Diagramme illustrant l’étape d’inscription d’un appareil avec une identité de hub IoT.

Créez une identité d’appareil pour votre appareil simulé 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.

Les appareils IoT Edge se comportent et peuvent être gérés différemment des appareils IoT classiques. Utilisez l’indicateur --edge-enabled pour déclarer que cette identité est destinée à un appareil IoT Edge.

  1. 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 Cloud Shell exécute la dernière version de l’extension Azure IoT.

  2. 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 et une clé partagée qui authentifie les connexions entre les deux.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. Copiez la valeur de la clé connectionString à partir de la sortie JSON et enregistrez-la. Cette valeur est la chaîne de connexion de l’appareil. Vous l’utiliserez pour configurer le runtime IoT Edge dans la section suivante.

    Capture d’écran montrant la sortie de la chaîne connectionString dans Cloud Shell.

Installer et démarrer le runtime IoT Edge

Installez IoT Edge pour Linux sur Windows sur votre appareil, et configurez-le avec la chaîne de connexion d’appareil.

Diagramme illustrant l’étape de démarrage du runtime IoT Edge.

Exécutez les commandes PowerShell suivantes sur l’appareil cible sur lequel vous souhaitez déployer Azure IoT Edge pour Linux sur Windows. Pour déployer sur un appareil cible distant à l’aide de PowerShell, utilisez PowerShell distant pour établir une connexion à un appareil distant et exécuter ces commandes à distance sur cet appareil.

  1. Dans une session PowerShell avec élévation de privilèges, exécutez la commande suivante pour activer Hyper-V. Pour plus d’informations, consultez Hyper-V sur Windows 10.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. Dans une session PowerShell avec élévation de privilèges, exécutez chacune des commandes suivantes pour télécharger IoT Edge pour Linux sur Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  3. Installez IoT Edge pour Linux sur Windows sur votre appareil.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  4. Définissez la stratégie d’exécution sur l’appareil cible sur AllSigned si ce n’est pas déjà fait. Vous pouvez vérifier la stratégie d’exécution actuelle dans une invite PowerShell avec élévation de privilèges à l’aide de :

    Get-ExecutionPolicy -List
    

    Si la stratégie d’exécution de local machine n’est pas AllSigned, vous pouvez la définir à l’aide de :

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Créer le déploiement d’IoT Edge pour Linux sur Windows.

    Deploy-Eflow
    
  6. Entrez « Y » pour accepter les termes du contrat de licence.

  7. Entrez « O » ou « R » pour activer ou désactiver les données de diagnostic facultatives à votre convenance. Voici l’illustration d’un déploiement réussi.

    Un déploiement réussi indique « Déploiement réussi » à la fin des messages

  8. Approvisionnez votre appareil à l’aide de la chaîne de connexion de l’appareil que vous avez récupérée dans la section précédente. Remplacez le texte de l’espace réservé par votre propre valeur.

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"​
    

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 transmet des données de télémétrie à IoT Hub.

Diagramme illustrant l’étape de déploiement d’un module.

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 de la Place de Marché Azure directement à partir d’Azure IoT Hub.

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 les étapes suivantes pour déployer votre premier module à partir de la Place de Marché Azure.

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

  2. Dans le menu de gauche, sélectionnez Appareils sous le menu Gestion des appareils.

  3. Sélectionnez l’ID de l’appareil cible dans la liste des appareils.

    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.

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

    Capture d’écran montrant la sélection de la commande Définir des modules.

  5. Sous Modules IoT Edge, ouvrez le menu déroulant Ajouter, puis sélectionnez Module de la Place de marché.

    Capture d’écran montrant le menu déroulant Ajouter.

  6. Sous Place de marché de module IoT Edge, recherchez et sélectionnez le module Simulated Temperature Sensor.

    Le module est ajouté à la section Modules IoT Edge avec l’état souhaité en cours d’exécution.

  7. Sélectionnez Suivant : Routes pour passer à l’étape suivante de l’Assistant.

    Capture d’écran montrant le passage à l’étape suivante après l’ajout du module.

  8. Sous l’onglet Routes, supprimez la route par défaut route, puis sélectionnez Suivant : Vérifier + créer pour passer à l’étape suivante de l’Assistant.

    Notes

    Les routes sont construites à l’aide de paires nom/valeur. Vous devez voir deux routes sur cette page. La route par défaut route envoie tous les messages à IoT Hub (on emploie le terme $upstream). Une deuxième route appelée SimulatedTemperatureSensorToIoTHub a été créée automatiquement quand vous avez ajouté le module à partir de la Place de Marché Azure. Cette route envoie tous les messages du module de température simulé à IoT Hub. Vous pouvez supprimer la route par défaut, car elle est redondante dans ce cas.

    Capture d’écran montrant la suppression de la route par défaut et le passage à l’étape suivante.

  9. 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. Vous voyez le module SimulatedTemperatureSensor ainsi que les deux modules runtime edgeAgent et edgeHub.

    Notes

    Lorsque vous envoyez un nouveau déploiement vers 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.

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

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

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.

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. Les messages qu’il envoie incluent 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.

  1. Connectez-vous à votre IoT Edge pour Linux sur machine virtuelle Windows en utilisant la commande suivante dans votre session PowerShell :

    Connect-EflowVm
    

    Notes

    Le seul compte autorisé à accéder via SSH à la machine virtuelle est celui de l’utilisateur qui l’a créée.

  2. Une fois connecté, vous pouvez vérifier la liste des modules IoT Edge en cours d’exécution à l’aide de la commande Linux suivante :

    sudo iotedge list
    

    Vérifiez que le capteur de température, l’agent et le hub sont en cours d’exécution.

  3. Consultez les messages envoyés du module de capteur de température vers le cloud à l’aide de la commande Linux suivante :

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    Important

    Les commandes IoT Edge sont sensibles à la casse quand elles font référence à des noms de module.

    Affichez les journaux de sortie du module de capteur de température simulé.

Vous pouvez également utiliser l’extension Azure IoT Hub pour Visual Studio Code pour voir les messages arriver sur votre hub IoT.

Nettoyer les ressources

Si vous souhaitez poursuivre avec les tutoriels IoT Edge, ignorez cette étape. Vous pouvez utiliser l’appareil que vous avez inscrit et configuré dans le cadre de ce guide de 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. Si vous ne voulez pas supprimer tout le groupe, vous pouvez supprimer des ressources individuelles.

Important

Vérifiez le contenu du groupe de ressources pour être certain que vous ne voulez rien en conserver. La suppression d’un groupe de ressources est irréversible.

Utilisez la commande suivante pour supprimer le groupe IoTEdgeResources. La suppression peut prendre quelques minutes.

az group delete --name IoTEdgeResources

Vous pouvez vérifier que le groupe de ressources est supprimé en consultant la liste des groupes de ressources à l’aide de cette commande.

az group list

Désinstaller IoT Edge pour Linux sur Windows

Si vous souhaitez supprimer l’installation d’Azure IoT Edge pour Linux sur Windows de votre appareil, utilisez les commandes suivantes.

  1. Ouvrez Paramètres sur Windows.
  2. Sélectionnez Ajout/Suppression de programmes.
  3. Sélectionnez l’application Azure IoT Edge.
  4. Sélectionnez Désinstaller.

É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 avez 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.