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

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

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. Vous pouvez créer un travail Azure Stream Analytics dans le portail Azure, puis le déployer en tant que module IoT Edge sans code supplémentaire.

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.

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.

Dans ce tutoriel, vous allez apprendre à :

  • 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 – Architecture du tutoriel : indexer et déployer un travail ASA](./media/tutorial-deploy-stream-analytics/asa-architecture.png)

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

Prérequis

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.

Ressources cloud :

  • Un niveau gratuit ou standard IoT Hub dans Azure.

Créer un travail Azure Stream Analytics

Dans cette section, vous allez créer un travail Azure Stream Analytics qui effectuera 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, accédez à Créer une ressource>Internet des objets>Tâche Stream Analytics.

  2. Fournissez les valeurs suivantes pour créer votre travail :

    Champ Valeur
    Nom du travail 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 dans le cadre des démarrages rapides et didacticiels IoT Edge. Par exemple, utilisez IoTEdgeResources.
    Emplacement Choisissez un emplacement proche de vous.
    Environnement d’hébergement Sélectionnez Edge. Cette option indique que la tâche va être déployée sur un appareil IoT Edge au lieu d’être hébergée dans le cloud.
  3. Sélectionnez Create (Créer).

Configurer votre travail

Lorsque votre travail 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.

À l’aide des trois éléments d’entrée, de sortie et de requête, cette section crée un travail qui reçoit des données de température de l’appareil IoT Edge. Il 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. Vous allez spécifier exactement d’où les données proviennent et où elles passent dans la section suivante lorsque vous déployez le travail.

  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 de flux.

    Azure Stream Analytics - Ajouter une entrée

  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.

    Azure Stream Analytics - Ajouter une sortie

  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.

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

  11. Remplacez le texte par défaut par la requête suivante. 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.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    
  12. Sélectionnez Enregistrer la requête.

Configurer les paramètres IoT Edge

Pour préparer votre travail Stream Analytics à déployer sur un appareil IoT Edge, vous devez associer le travail à un compte de stockage. Quand vous passez au déploiement de votre travail, la définition du travail est exportée vers le conteneur de stockage sous la forme d’un conteneur.

  1. Sous Configurer, sélectionnez Paramètres du compte de stockage, puis Ajouter un compte de stockage.

    Azure Stream Analytics - Ajouter un compte de stockage

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

  3. Utilisez les menus déroulants pour sélectionner l’abonnement et le compte de stockage que vous avez configurés au début de ce tutoriel.

  4. Sélectionnez Enregistrer.

Déployer la tâche

Vous êtes désormais prêt à déployer le travail 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 qui seront déployés sur un appareil, 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 travail analysera.

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

  2. Sélectionnez Appareils dans le menu Gestion des périphériques, puis ouvrez la page des détails de votre appareil IoT Edge.

  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. Cliquez sur Ajouter et sélectionnez 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.0.
    4. Laissez les autres paramètres inchangés et sélectionnez Ajouter.
  5. Ajoutez votre travail Azure Stream Analytics Edge en suivant les étapes :

    1. Cliquez sur Ajouter et sélectionnez 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. Lorsque le module Stream Analytics est ajouté à la liste des modules, sélectionnez son nom pour voir comment il est structuré et mettez à jour ses paramètres dans la page Mettre à jour le module IoT Edge.

    L’onglet Paramètres du module contient l’URI d’image qui pointe vers une image Azure Stream Analytics standard. Cette image 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.

  7. Sélectionnez Appliquer ou Annuler.

  8. Notez le nom de votre module Stream Analytics. Vous en aurez besoin à l’étape suivante.

  9. Sélectionnez Suivant : Itinéraires.

  10. 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. Remplacez le nom et les valeurs par défaut de l’itinéraire par les paires indiquées dans le tableau suivant. Remplacement des trois instances de {moduleName}_ par le nom de votre module Azure Stream Analytics.

    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.

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

  12. À 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. Une fois que vous avez passé en revue le manifeste, sélectionnez Créer.

  13. Revenez à la page des détails sur votre appareil. Sélectionnez Actualiser.

    Vous devez voir le nouveau module Stream Analytics s’exécuter avec le module de l’agent IoT Edge et le module du hub IoT Edge. Quelques minutes peuvent être nécessaires pour que les informations atteignent votre appareil IoT Edge, puis pour que les nouveaux modules démarrent. Si vous ne voyez pas les modules s’exécuter immédiatement, continuez à actualiser la page.

    SimulatedTemperatureSensor et module ASA signalés par l’appareil

Afficher les données

Vous pouvez désormais aller sur votre appareil IoT Edge pour consulter les interactions entre les modules Azure Stream Analytics et SimulatedTemperatureSensor.

  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.

    Réinitialiser la sortie de commande dans les journaux d’activité du 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.