Tutoriel : Déployer Azure Stream Analytics en tant que module IoT Edge

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

Important

IoT Edge 1.4 est la version prise en charge. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Dans ce tutoriel, vous créez une tâche Azure Stream Analytics dans le portail Azure, puis vous la déployez en tant que module IoT Edge sans code supplémentaire.

Vous allez apprendre à effectuer les actions suivantes :

  • Créer un travail Azure Stream Analytics pour traiter les données à la périphérie.
  • Connecter le nouveau travail Azure Stream Analytics à d’autres modules IoT Edge.
  • Déployer le travail Azure Stream Analytics sur un appareil IoT Edge depuis le portail Azure.

Diagramme de l’architecture de flux, montrant la mise en lots et le déploiement d’une tâche Azure Stream Analytics.

Le module Stream Analytics de ce didacticiel calcule la température moyenne sur une fenêtre propagée de 30 secondes. Lorsque cette moyenne atteint 70, le module envoie les données et alerte l’appareil afin de prendre des mesures. Dans ce cas, cette mesure consiste à réinitialiser le capteur de température simulée. Dans un environnement de production, vous pouvez utiliser cette fonctionnalité pour arrêter un ordinateur ou prendre des mesures préventives quand la température atteint des niveaux dangereux.

Pourquoi utiliser Azure Stream Analytics dans IoT Edge ?

De nombreuses solutions IoT utilisent les services d’analytique pour obtenir des insights sur les données envoyées par les appareils IoT au fur et à mesure de leur arrivée dans le cloud. Avec Azure IoT Edge, vous pouvez utiliser cette logique Azure Stream Analytics et la transposer à l’appareil lui-même. Lors du traitement des flux de données de télémétrie en périphérie, vous pouvez réduire la quantité de données chargées et réduire le temps nécessaire pour réagir aux informations actionnables. Azure IoT Edge et Azure Stream Analytics sont intégrés pour simplifier le développement de vos charges de travail.

Azure Stream Analytics offre une syntaxe de requête très structurée pour l’analyse des données, à la fois dans le cloud et sur les appareils IoT Edge. Pour plus d’informations, consultez la documentation Azure Stream Analytics.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

  • Un appareil Azure IoT Edge.

    Vous pouvez utiliser une machine virtuelle Azure en tant qu’appareil IoT Edge. Pour cela, suivez les étapes du guide de démarrage rapide pour les appareils Linux ou Windows.

  • Un niveau gratuit ou standard IoT Hub dans Azure.

Créer un travail Azure Stream Analytics

Dans cette section, vous créez une tâche Azure Stream Analytics qui effectue les étapes suivantes :

  • Recevoir les données envoyées par votre appareil IoT Edge
  • Interroger les données de télémétrie pour connaître les valeurs situées en dehors d’une plage définie
  • Prendre des mesures sur l’appareil IoT Edge en fonction des résultats de la requête

Créez un compte de stockage.

Lorsque vous créez un travail Azure Stream Analytics pour s’exécuter sur un appareil IoT Edge, il doit être stocké de manière à pouvoir être appelé à partir de l’appareil. Vous pouvez utiliser un compte Stockage Azure existant ou en créer un maintenant.

  1. Dans le portail Azure, accédez à Créer une ressource>Stockage>Compte de stockage.

  2. Fournissez les valeurs suivantes pour créer votre compte de stockage :

    Champ Valeur
    Abonnement Choisissez le même abonnement que votre IoT Hub.
    Resource group Nous vous recommandons d’utiliser le même groupe de ressources pour toutes vos ressources de test dans le cadre des démarrages rapides et tutoriels IoT Edge. Par exemple, utilisez IoTEdgeResources.
    Nom Fournissez un nom unique pour votre compte de stockage.
    Emplacement Choisissez un emplacement proche de vous.
  3. Conservez les valeurs par défaut des autres champs, puis sélectionnez Vérifier + créer.

  4. Passez en revue vos paramètres, puis sélectionnez Créer.

Créer une nouvelle tâche

  1. Dans le portail Azure, sélectionnez :

    1. Créer une ressource
    2. Internet des objets dans le menu de gauche
    3. Tapez Stream Analytics dans la barre de recherche pour le trouver sur la Place de marché
    4. Sélectionnez Créer, puis Tâche Stream Analytics dans le menu déroulant

    Capture d’écran montrant où trouver le service de tâche Stream Analytics sur la Place de marché et où créer une nouvelle tâche.

  2. Fournissez les valeurs suivantes pour créer votre tâche Stream Analytics :

    Champ Valeur
    Nom Fournissez un nom pour votre travail. Par exemple, IoTEdgeJob
    Abonnement Choisissez le même abonnement que votre IoT Hub.
    Resource group Nous vous recommandons d’utiliser le même groupe de ressources pour toutes les ressources de test que vous créez au cours des tutoriels et des démarrages rapides IoT Edge. Par exemple, une ressource nommée IoTEdgeResources.
    Région Choisissez un emplacement proche de vous.
    Environnement d’hébergement Sélectionnez Edge. Cette option signifie que le déploiement est dirigé vers un appareil IoT Edge au lieu d’être hébergé dans le cloud.
  3. Sélectionnez Revoir + créer.

  4. Confirmez vos options, puis sélectionnez Créer.

Configurer votre travail

Lorsque votre tâche Stream Analytics est créé dans le portail Azure, vous pouvez le configurer avec une entrée, une sortie et une requête à exécuter sur les données qui le traverse.

Cette section crée une tâche qui reçoit des données de température d’un appareil IoT Edge. Elle analyse ces données dans une fenêtre de 30 secondes consécutives. Si la température moyenne de cette fenêtre dépasse 70 degrés, une alerte est envoyée à l’appareil IoT Edge.

Notes

Vous spécifiez exactement où les données proviennent et vont dans la section suivante, Configurer les paramètres IoT Edge, lorsque vous déployez la tâche.

Définissez votre entrée et votre sortie

  1. Accédez à votre travail Stream Analytics dans le portail Azure.

  2. Sous Topologie de la tâche, sélectionnez Entrées, puis Ajouter une entrée.

    Capture d’écran montrant où ajouter une entrée de flux dans le Portail Azure.

  3. Choisissez Edge Hub dans la liste déroulante.

    Si vous ne voyez pas l’option Edge Hub dans la liste, vous avez peut-être créé votre travail Stream Analytics en tant que travail hébergé dans le cloud. Essayez de créer un travail et veillez à sélectionner Edge comme environnement d’hébergement.

  4. Dans le volet Nouvelle entrée, saisissez température comme Alias d’entrée.

  5. Conservez les valeurs par défaut pour les autres champs et sélectionnez Enregistrer.

  6. Sous Topologie de la tâche, ouvrez Sorties, puis sélectionnez Ajouter.

    Capture d’écran montrant où ajouter une sortie de flux dans le Portail Azure.

  7. Choisissez Edge Hub dans la liste déroulante.

  8. Dans le volet Nouvelle sortie, saisissez alerte comme alias de sortie.

  9. Conservez les valeurs par défaut pour les autres champs et sélectionnez Enregistrer.

Créer une requête

  1. Sous Topologie de la tâche, sélectionnez Requête.

  2. Remplacez le texte par défaut par la requête suivante.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    Dans cette requête, le code SQL envoie une commande de réinitialisation à la sortie d’alerte si la température moyenne de la machine dans une fenêtre de 30 secondes atteint 70 degrés. La commande de réinitialisation a été préprogrammée dans le capteur comme une action qui peut être effectuée.

  3. Sélectionnez Enregistrer la requête.

Configurer les paramètres IoT Edge

Pour préparer votre tâche Stream Analytics à être déployée sur un appareil IoT Edge, vous devez associer votre tâche Azure Stream Analytics à un compte de stockage. Lorsque vous déployez votre tâche, la définition de la tâche est exportée vers le compte de stockage sous la forme d’un conteneur.

  1. Dans votre service Stream Analytics, sous le menu Paramètres, sélectionnez Paramètres du compte de stockage.

  2. Choisissez l’option Sélectionner un stockage blob/ADLS Gen 2 dans vos abonnements.

  3. Votre compte de stockage Azure s’affiche automatiquement sur la page. Si vous n’en voyez pas, veillez à créer un stockage. Ou si vous devez choisir un stockage différent de celui répertorié dans le champ Compte de stockage, sélectionnez-le dans le menu déroulant.

  4. Sélectionnez Enregistrer si vous avez dû apporter des modifications.

    Capture d’écran de l’emplacement où ajouter un compte de stockage dans votre tâche Stream Analytics dans le Portail Azure.

Déployer la tâche

Vous êtes désormais prêt à déployer la tâche Azure Stream Analytics sur votre appareil IoT Edge.

Dans cette section, vous utilisez l’Assistant Définir des modules dans le portail Azure pour créer un manifeste de déploiement. Un manifeste de déploiement est un fichier JSON qui décrit tous les modules déployés sur un appareil. Le manifeste présente également les registres de conteneurs qui stockent les images de modules, comment les modules doivent être gérés et comment les modules peuvent communiquer entre eux. Votre appareil IoT Edge récupère son manifeste de déploiement d’IoT Hub, puis utilise les informations qu’il contient pour déployer et configurer tous les modules assignés.

Pour ce didacticiel, vous déployez deux modules. Le premier est SimulatedTemperatureSensor, un module qui simule un capteur de température et d’humidité. Le second est votre travail Stream Analytics. Le module de capteur fournit le flux de données que votre requête de tâches analyse.

  1. Accédez à votre hub IoT dans le portail Azure.

  2. Sélectionnez Appareils sous le menu Gestion des appareils, puis sélectionnez votre appareil IoT Edge pour l’ouvrir.

  3. Sélectionnez Définir des modules.

  4. Si vous avez déployé le module SimulatedTemperatureSensor sur cet appareil, celui-ci peut se remplir automatiquement. Sinon, ajoutez le module en procédant comme suit :

    1. Sélectionnez + Ajouter, puis choisissez Module IoT Edge.
    2. Pour le nom, tapez SimulatedTemperatureSensor.
    3. Pour l’URI de l’image, entrez mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.
    4. Conservez les autres paramètres par défaut, puis sélectionnez Ajouter.
  5. Ajoutez votre travail Azure Stream Analytics Edge en suivant les étapes :

    1. Sélectionnez + Ajouter et choisissez Module Azure Stream Analytics.
    2. Sélectionnez votre abonnement et le travail Azure Stream Analytics Edge que vous avez créé.
    3. Sélectionnez Enregistrer.

    Une fois que vous avez enregistré vos modifications, les détails de votre tâche Stream Analytics sont publiés dans le conteneur de stockage que vous avez créé.

  6. Une fois le déploiement de votre ajout Stream Analytics terminé, vérifiez que deux nouveaux modules apparaissent dans votre page Définir les modules.

    Capture d’écran confirmant que deux nouveaux modules se trouvent sur votre appareil. La capture d’écran montre également où se trouve le bouton Vérifier + créer.

  7. Sélectionnez Revoir + créer. Le manifeste de déploiement s’affiche.

  8. Sélectionnez Create (Créer).

  9. Dans la page Définir les modules de votre appareil, après quelques minutes, vous devriez voir les modules répertoriés et en cours d’exécution. Actualisez la page si vous ne voyez pas de modules, ou patientez quelques minutes de plus, puis actualisez-la à nouveau.

    Capture d’écran montrant la liste des modules de votre appareil dans le Portail Azure.

Comprenez les deux nouveaux modules

  1. Sous l’onglet Définir les modules de votre appareil, sélectionnez le nom de votre module Stream Analytics pour accéder à la page Mettre à jour le module IoT Edge. Ici, vous pouvez mettre à jour les paramètres.

    L’onglet Paramètres contient URI d’image qui pointe vers une image Azure Stream Analytics standard. Cette image unique est utilisée pour chaque module Stream Analytics qui est déployé sur un appareil IoT Edge.

    L’onglet Paramètres de jumeau de module présente le JSON qui définit la propriété Azure Stream Analytics (ASA) appelée ASAJobInfo. La valeur de cette propriété pointe vers la définition du travail dans votre conteneur de stockage. Cette propriété correspond à la configuration de l’image Stream Analytics avec les informations de votre tâche.

    Par défaut, le module Stream Analytics prend le nom de la tâche sur laquelle il est basé. Vous pouvez modifier le nom du module dans cette page si vous le souhaitez, mais cela n’est pas nécessaire.

  2. Sélectionnez Appliquer si vous avez apporté des modifications ou Annuler si vous n’avez apporté aucune modification.

Attribuez des itinéraires à vos modules

  1. Dans la page Définir des modules sur l’appareil :<nom de votre appareil>, sélectionnez Suivant : Itinéraires.

  2. Sous l’onglet Routes, vous définissez la manière dont les messages sont transmis entre les modules et le hub IoT. Les messages sont construits à l’aide de paires nom/valeur.

    Ajoutez les noms et les valeurs de l’itinéraire avec les paires indiquées dans le tableau suivant. Remplacez les instances de {moduleName} par le nom de votre module Azure Stream Analytics. Ce module doit porter le même nom que celui que vous voyez dans la liste des modules de votre appareil sur la page Définir des modules, comme indiqué dans le Portail Azure.

    Capture d’écran montrant le nom de vos modules Stream Analytics dans votre appareil IoT Edge dans le Portail Azure.

    Nom Valeur
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    Les itinéraires que vous déclarez ici définissent le flux de données via l’appareil IoT Edge. Les données de télémétrie de SimulatedTemperatureSensor sont envoyées à IoT Hub et à l’entrée temperature qui a été configurée dans la tâche Stream Analytics. Les messages de sortie d’alerte sont envoyés à IoT Hub et au module SimulatedTemperatureSensor pour déclencher la commande de réinitialisation.

  3. Sélectionnez Suivant : Vérifier + créer.

  4. À l’étape Vérifier + créer, vous voyez que les informations que vous avez fournies dans l’Assistant ont été converties en manifeste de déploiement JSON.

  5. Lorsque vous avez terminé de passer en revue le manifeste, sélectionnez Créer pour terminer la configuration de votre module.

Afficher les données

Vous pouvez maintenant accéder à votre appareil IoT Edge pour voir l’interaction entre le module Azure Stream Analytics et le module SimulatedTemperatureSensor.

Notes

Si vous utilisez une machine virtuelle pour un appareil, vous pouvez utiliser Azure Cloud Shell pour accéder directement à tous les services authentifiés Azure.

  1. Vérifiez que tous les modules sont en cours d’exécution dans Docker :

    iotedge list  
    
  2. Affichez tous les journaux d’activité système et les données des métriques. Remplacez {moduleName} par le nom de votre module Azure Stream Analytics :

    iotedge logs -f {moduleName}  
    
  3. Voyez comment la commande de réinitialisation affecte SimulatedTemperatureSensor en consultant les journaux du capteur :

    iotedge logs SimulatedTemperatureSensor
    

    Vous pouvez voir la température de l’ordinateur augmenter progressivement jusqu’à atteindre 70 degrés pendant 30 secondes. Le module Stream Analytics déclenche alors une réinitialisation qui fait redescendre la température de l’ordinateur à 21.

    Capture d’écran montrant la commande de réinitialisation dans votre sortie à partir de vos journaux de module.

Nettoyer les ressources

Si vous envisagez de passer à l’article recommandé suivant, vous pouvez conserver les ressources et configurations que vous avez créées afin de les réutiliser. Vous pouvez également continuer à utiliser le même appareil IoT Edge comme appareil de test.

Sinon, vous pouvez supprimer les ressources Azure et les configurations locales que vous avez utilisées dans cet article pour éviter les frais.

Supprimer les ressources Azure

La suppression des ressources et des groupes de ressources Azure est irréversible. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé le hub IoT à l’intérieur d’un groupe de ressources existant qui contient des ressources que vous souhaitez conserver, supprimez uniquement la ressource du hub IoT, plutôt que le groupe de ressources.

Pour supprimer les ressources :

  1. Connectez-vous au Portail Azure, puis sélectionnez Groupes de ressources.

  2. Sélectionnez le nom du groupe de ressources contenant vos ressources de test de IoT Edge.

  3. Passez en revue la liste des ressources contenues dans votre groupe de ressources. Si vous souhaitez toutes les supprimer, vous pouvez sélectionner Supprimer le groupe de ressources. Si vous souhaitez en supprimer seulement quelques-unes, vous pouvez cliquer sur chaque ressource pour les supprimer individuellement.

Étapes suivantes

Dans ce didacticiel, vous avez configuré un travail Azure Stream Analytics pour qu’il analyse les données de votre appareil IoT Edge. Ensuite, vous avez chargé ce module Azure Stream Analytics sur votre appareil IoT Edge pour traiter et réagir localement à l’augmentation de température, et pour envoyer le flux de données agrégées dans le cloud. Vous pouvez passer à d’autres didacticiels pour savoir comment Azure IoT Edge peut trouver d’autres solutions pour votre entreprise.