Tutoriel : Surveiller des appareils IoT et envoyer des notifications avec Azure Logic Apps
Utilisez Azure Logic Apps pour surveiller des données de télémétrie d’appareil entrantes provenant d’IoT Hub et envoyer des notifications quand des alertes sont déclenchées.
Azure Logic Apps peut vous aider à orchestrer des workflows entre des services locaux et cloud, entre plusieurs entreprises et avec différents protocoles. Une application logique commence par un déclencheur, suivi d’une ou plusieurs actions qui peuvent être classées à l’aide de contrôles intégrés comme des conditions et des itérateurs. Cette flexibilité fait de Logic Apps une solution d’IoT idéale pour les scénarios de supervision IoT. Par exemple, l’arrivée de données d’un appareil sur un point de terminaison IoT Hub peut lancer des workflows d’application logique pour entreposer les données dans un objet Blob de Stockage Azure, envoyer des alertes par e-mail afin d’informer d’anomalies dans les données, planifier la visite d’un technicien si un appareil signale un échec, etc.
Dans ce didacticiel, vous allez effectuer les tâches suivantes :
Créez une file d’attente Service Bus. Créez une route dans votre hub IoT qui envoie des messages à la file d’attente Service Bus si les messages contiennent des lectures de température anormale. Créez une application logique qui surveille l’arrivée de messages dans la file d’attente et envoie une alerte par e-mail.
Le code client exécuté sur votre appareil définit une propriété d’application, temperatureAlert
, dans chaque message de télémétrie qu’il envoie à votre hub IoT. Quand le code client détecte une température supérieure à un seuil donné, il définit cette propriété sur true
; sinon, il définit la propriété sur false
.
Les messages arrivant à votre IoT Hub ressemblent à ce qui suit, avec les données de télémétrie contenues dans le corps et la temperatureAlert
propriété contenue dans les propriétés de l’application (les propriétés système ne sont pas affichées) :
{
"body": {
"messageId": 18,
"deviceId": "Raspberry Pi Web Client",
"temperature": 27.796111770668457,
"humidity": 66.77637926438427
},
"applicationProperties": {
"temperatureAlert": "false"
}
}
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Prérequis
Préparez les prérequis suivants avant de commencer ce tutoriel.
Un abonnement Azure actif.
Un hub IoT dans votre abonnement.
Une application cliente qui envoie des données de température à votre hub Azure IoT. Ce tutoriel filtre les messages appareil-à-cloud en fonction d’une propriété de message appelée
temperatureAlert
. Voici quelques exemples qui génèrent des messages avec cette propriété :- SDK .NET : SimulatedDevice
- SDK Java : send-event
- SDK Node.js : simple_sample_device
- SDK C : iothub_II_client_shared_sample
- Sans code : Simulateur en ligne Raspberry Pi
Créer un espace de noms et une file d’attente Service Bus
Créez un espace de noms et une file d’attente Service Bus. Plus loin dans cet article, vous créez une règle de routage dans votre hub IoT pour diriger les messages contenant une alerte de température vers la file d’attente Service Bus. Une application logique surveille la file d’attente des messages entrants et envoie une notification pour chaque alerte.
Créer un espace de noms Service Bus
Dans le portail Azure, utilisez la barre de recherche pour rechercher et sélectionner Service Bus.
Sélectionnez Créer pour créer un espace de noms Service Bus.
Dans le volet Créer un espace de noms, fournissez les informations suivantes :
Paramètre Valeur Abonnement Choisissez le même abonnement que celui qui contient votre hub IoT. Groupe de ressources Choisissez le même groupe de ressources que celui qui contient votre hub IoT. Nom de l’espace de noms Spécifiez un nom pour votre espace de noms Service Bus. L’espace de noms doit être unique dans tout Azure. Lieu Choisissez le même emplacement que celui utilisé par votre hub IoT. Niveau tarifaire Sélectionnez De base dans la liste déroulante. Le niveau de base est suffisant pour ce didacticiel. Sélectionnez Revoir + créer.
Sélectionnez Create (Créer).
Attendez la fin du déploiement, puis sélectionnez Accéder à la ressource.
Ajouter une file d’attente Service Bus avec l’espace de noms
Dans la page Vue d’ensemble de votre espace de noms Service Bus, sélectionnez File d’attente.
Dans le champ Nom, spécifiez un nom pour votre file d’attente. Acceptez les valeurs par défaut pour les autres champs, puis sélectionnez Créer.
Dans votre espace de noms Service Bus, sélectionnez Stratégies d’accès partagé dans la section Paramètres du menu des ressources.
Sélectionnez la stratégie RootManageSharedAccessKey pour voir ses détails.
Copiez la valeur de Chaîne de connexion principale et enregistrez-la pour l’utiliser plus loin dans ce tutoriel lors de la configuration de l’application logique.
Ajouter un point de terminaison personnalisé et une règle d’acheminement à votre IoT Hub
Ajoutez à votre hub IoT un point de terminaison personnalisé pour la file d’attente Service Bus. Ensuite, créez une règle de routage des messages pour diriger les messages qui contiennent une alerte de température vers ce point de terminaison, où ils sont récupérés par votre application logique. La règle d’acheminement utilise une requête de routage, temperatureAlert = "true"
, pour transférer des messages en fonction de la valeur de la propriété d’application temperatureAlert
définie par le code client exécuté sur l’appareil. Pour en savoir plus, consultez Requête de routage de messages en fonction des propriétés de message.
Ajouter un point de terminaison personnalisé et une route
Accédez à votre IoT Hub dans le Portail Azure.
Dans le menu de la ressource, sous Paramètres du hub, sélectionnez Routage des messages et sélectionnez Ajouter.
Sous l’onglet Point de terminaison, créez un point de terminaison pour votre file d’attente Service Bus en fournissant les informations suivantes :
Paramètre Valeur Type de point de terminaison Sélectionnez File d’attente Service Bus. Nom du point de terminaison Spécifiez un nom pour le nouveau point de terminaison mappé à votre file d’attente Service Bus. Espace de noms Service Bus Utilisez le menu déroulant pour sélectionner l’espace de noms Service Bus que vous avez créé dans la section précédente. File d’attente Service Bus Utilisez le menu déroulant pour sélectionner la file d’attente Service Bus que vous avez créée dans votre espace de noms. Sélectionnez Créer + suivant.
Dans l’onglet Route, entrez les informations suivantes pour créer une route qui pointe vers votre point de terminaison de file d’attente Service Bus :
Paramètre Valeur Nom Donnez un nom unique à la route. Source de données Conservez la source de données Messages de télémétrie des appareils par défaut. Requête de routage entrez temperatureAlert = "true"
pour la chaîne de requête.Sélectionnez Créer + Sauter les enrichissements.
Configurer Logic Apps pour les notifications
Dans la section précédente, vous avez configuré votre hub IoT pour router les messages contenant une alerte de température vers votre file d’attente Service Bus. Vous configurez maintenant une application logique pour surveiller la file d’attente Service Bus et envoyer une notification par e-mail si un message est ajouté à la file d’attente.
Créer une application logique
Dans le portail Azure, recherchez et sélectionnez Logic Apps.
Sélectionnez Ajouter pour créer une application logique.
Entrez ensuite les informations suivantes sous l’onglet Informations de base de Créer une application logique :
Paramètre Valeur Groupe de ressources Sélectionnez le même groupe de ressources que celui qui contient votre hub IoT. Nom Entrez un nom pour votre application logique. Région Sélectionnez un emplacement proche de vous. Type de plan Sélectionnez Consommation, ce qui est suffisant pour ce tutoriel. Sélectionnez Revoir + créer.
Sélectionnez Create (Créer).
Une fois le déploiement terminé, sélectionnez Accéder à la ressource pour ouvrir votre application logique.
Configurer le déclencheur d’application logique
Dans la page des ressources de votre application logique du portail Azure, ouvrez le Concepteur d’applications logiques à partir de la section Outils de développement du menu des ressources.
Dans le concepteur, faites défiler vers le bas jusqu’à Modèles, puis sélectionnez Application logique vide.
Sélectionnez l’onglet Tous pour afficher tous les connecteurs et déclencheurs, puis sélectionnez Service Bus.
Sous Déclencheurs, sélectionnez Lorsqu’un ou plusieurs messages arrivent dans une file d’attente (saisie semi-automatique) .
Créez une connexion Service Bus.
Spécifiez un Nom de connexion, puis collez la chaîne de connexion que vous avez copiée depuis votre espace de noms Service Bus.
Sélectionnez Créer.
Dans l’écran suivant, utilisez le menu déroulant pour sélectionner la file d’attente que vous avez créée dans votre espace de noms Service Bus. Entrez ensuite
175
pour Nombre maximal de messages.
Sélectionnez Enregistrer dans le menu du Concepteur d’application logique pour enregistrer vos modifications.
Configurer l’action d’application logique
Sélectionnez Nouvelle étape dans le Concepteur d’application logique.
Créez une connexion de service SMTP.
Recherchez et sélectionnez SMTP.
Sélectionnez Envoyer un e-mail (V3) comme action pour cette étape.
Spécifiez un nom de connexion, puis renseignez le reste des champs avec les informations SMTP pour le compte de messagerie que vous voulez utiliser pour envoyer les messages de notification.
Utilisez les liens suivants pour rechercher vos informations SMTP, en fonction de votre fournisseur de messagerie :
Remarque
Vous devrez peut-être désactiver le protocole TLS/SSL pour établir la connexion. Si c’est le cas et si vous souhaitez réactiver TLS une fois la connexion établie, consultez l’étape facultative à la fin de cette section.
Sélectionnez Créer.
Configurez l’action Envoyer un e-mail.
Dans la liste déroulante Ajouter un nouveau paramètre de l’étape Envoyer un e-mail, sélectionnez les paramètres suivants :
- From
- À
- Objet
- Corps
Cliquez ou appuyez n’importe où sur l’écran pour fermer la zone de sélection.
Entrez les informations suivantes pour les paramètres de messagerie que vous avez sélectionnés à l’étape précédente :
Paramètre Valeur From L’adresse e-mail que vous avez configurée pour la connexion SMTP. À La ou les adresses e-mail auxquelles vous voulez envoyer des e-mails de notification. Objet High temperature detected
.Corps High temperature detected
.Si la boîte de dialogue Ajouter du contenu dynamique s’ouvre, sélectionnez Masquer pour la fermer. Vous n’utilisez pas de contenu dynamique dans ce tutoriel.
Sélectionnez Enregistrer pour enregistrer la connexion SMTP.
(Facultatif) Si vous deviez désactiver le protocole TLS pour établir une connexion avec votre fournisseur de messagerie et que vous souhaitez le réactiver, procédez comme suit :
Dans le volet Application logique, sous Outils de développement, sélectionnez Connexions d’API.
Dans la liste des connexions d’API, sélectionnez la connexion SMTP.
Dans le volet Connexion d’API SMTP, sous Général, sélectionnez Modifier une connexion d’API.
Dans le volet Modifier la connexion d’API, sélectionnez Activer le protocole SSL ?, entrez à nouveau le mot de passe de votre compte de messagerie, puis sélectionnez Enregistrer.
Votre application logique est maintenant prête à traiter les alertes de température de la file d’attente Service Bus et à envoyer des notifications à votre compte de messagerie.
Tester l’application logique
Commencez à envoyer des messages de température depuis votre appareil IoT pour tester le pipeline de surveillance et de notification.
Démarrez l’application cliente sur votre appareil. Le code client génère de façon aléatoire des messages de télémétrie et définit la propriété
temperatureAlert
surtrue
quand la température dépasse 30 C.Vous devriez recevoir des e-mails de notification envoyés par l’application logique.
Notes
Il se peut que votre fournisseur de services de messagerie doive vérifier l’identité de l’expéditeur pour s’assurer que vous êtes bien celui qui envoie l’e-mail.
Nettoyer les ressources
Si vous n’avez plus besoin des ressources que vous avez créées dans ce tutoriel, supprimez-les ainsi que le groupe de ressources dans le portail. Pour ce faire, sélectionnez le groupe de ressources qui contient votre hub IoT, puis sur Supprimer.
Vous pouvez également utiliser l’interface de ligne de commande :
# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>
Étapes suivantes
Dans ce tutoriel, vous avez créé une application logique qui connecte votre hub IoT et votre boîte aux lettres pour effectuer la surveillance et des notifications de la température.
Pour continuer à bien démarrer avec Azure IoT Hub et explorer tous les scénarios IoT, consultez les articles suivants :
Gérer la messagerie de l'appareil cloud avec l'extension Azure IoT Hub pour Visual Studio Code
Gérer des appareils avec l'extension Azure IoT Hub pour Visual Studio Code
Utiliser Power BI pour afficher les données de capteurs en temps réel depuis votre IoT Hub
Utiliser Logic Apps pour le monitoring à distance et les notifications