Tutoriel : Déployer Azure Stream Analytics en tant que module IoT Edge
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.
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.
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.
Dans le portail Azure, accédez à Créer une ressource>Stockage>Compte de stockage.
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. Conservez les valeurs par défaut des autres champs, puis sélectionnez Vérifier + créer.
Passez en revue vos paramètres, puis sélectionnez Créer.
Créer une nouvelle tâche
Dans le portail Azure, sélectionnez :
- Créer une ressource
- Internet des objets dans le menu de gauche
- Tapez Stream Analytics dans la barre de recherche pour le trouver sur la Place de marché
- Sélectionnez Créer, puis Tâche Stream Analytics dans le menu déroulant
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. Sélectionnez Revoir + créer.
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
Accédez à votre travail Stream Analytics dans le portail Azure.
Sous Topologie de la tâche, sélectionnez Entrées, puis Ajouter une entrée.
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.
Dans le volet Nouvelle entrée, saisissez température comme Alias d’entrée.
Conservez les valeurs par défaut pour les autres champs et sélectionnez Enregistrer.
Sous Topologie de la tâche, ouvrez Sorties, puis sélectionnez Ajouter.
Choisissez Edge Hub dans la liste déroulante.
Dans le volet Nouvelle sortie, saisissez alerte comme alias de sortie.
Conservez les valeurs par défaut pour les autres champs et sélectionnez Enregistrer.
Créer une requête
Sous Topologie de la tâche, sélectionnez Requête.
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.
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.
Dans votre service Stream Analytics, sous le menu Paramètres, sélectionnez Paramètres du compte de stockage.
Choisissez l’option Sélectionner un stockage blob/ADLS Gen 2 dans vos abonnements.
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.
Sélectionnez Enregistrer si vous avez dû apporter des modifications.
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.
Accédez à votre hub IoT dans le portail Azure.
Sélectionnez Appareils sous le menu Gestion des appareils, puis sélectionnez votre appareil IoT Edge pour l’ouvrir.
Sélectionnez Définir des modules.
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 :
- Sélectionnez + Ajouter, puis choisissez Module IoT Edge.
- Pour le nom, tapez SimulatedTemperatureSensor.
- Pour l’URI de l’image, entrez mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
- Conservez les autres paramètres par défaut, puis sélectionnez Ajouter.
Ajoutez votre travail Azure Stream Analytics Edge en suivant les étapes :
- Sélectionnez + Ajouter et choisissez Module Azure Stream Analytics.
- Sélectionnez votre abonnement et le travail Azure Stream Analytics Edge que vous avez créé.
- 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éé.
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.
Sélectionnez Revoir + créer. Le manifeste de déploiement s’affiche.
Sélectionnez Create (Créer).
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.
Comprenez les deux nouveaux modules
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.
Sélectionnez Appliquer si vous avez apporté des modifications ou Annuler si vous n’avez apporté aucune modification.
Attribuez des itinéraires à vos modules
Dans la page Définir des modules sur l’appareil :<nom de votre appareil>, sélectionnez Suivant : Itinéraires.
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.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.
Sélectionnez Suivant : Vérifier + créer.
À 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.
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.
Vérifiez que tous les modules sont en cours d’exécution dans Docker :
iotedge list
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}
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.
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 :
Connectez-vous au Portail Azure, puis sélectionnez Groupes de ressources.
Sélectionnez le nom du groupe de ressources contenant vos ressources de test de IoT Edge.
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 sélectionner chaque ressource pour la 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.