Tutoriel : Envoyer des notifications par e-mail concernant des événements Azure IoT Hub à l’aide d’Event Grid et de Logic Apps
Azure Event Grid vous permet de réagir aux événements dans IoT Hub en déclenchant des actions dans vos applications d’entreprise en aval.
Cet article présente un exemple de configuration qui utilise IoT Hub et Event Grid. À la fin, vous disposez d’une application logique Azure configurée pour envoyer un e-mail de notification chaque fois qu’un appareil se connecte à votre hub IoT ou s’en déconnecte. Event Grid peut être utilisé pour obtenir en temps voulu une notification sur la déconnexion des appareils critiques. Les métriques et diagnostics peuvent prendre plusieurs minutes (par exemple, 20 minutes ou plus) pour apparaître dans les journaux/alertes. Les temps de traitement plus longs peuvent être inacceptables pour l’infrastructure critique.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
- Un compte e-mail auprès de n’importe quel fournisseur de messagerie pris en charge par Azure Logic Apps, comme Office 365 Outlook ou Outlook.com. Ce compte e-mail permet d’envoyer les notifications d’événements.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Créer un hub IoT
Vous pouvez rapidement créer un hub IoT à l’aide du terminal Azure Cloud Shell dans le portail.
Connectez-vous au portail Azure.
En haut à droite dans la page, sélectionnez le bouton Cloud Shell.
Utilisez la commande suivante pour créer un groupe de ressources :
az group create --name {your resource group name} --location westus
Exécutez la commande suivante pour créer un hub IoT :
az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1
Réduisez le terminal Cloud Shell. Vous retournerez à l’interpréteur de commandes plus tard dans ce tutoriel.
Créer une application logique
Créez ensuite une application logique, puis ajoutez un déclencheur Event Grid HTTP qui traite les requêtes en provenance du hub IoT.
Créer une ressource d’application logique
Dans le portail Azure, sélectionnez Créer une ressource, puis tapez « application logique » dans la zone de recherche et appuyez sur Entrée. Sélectionnez Application logique dans les résultats.
Sur l’écran suivant, sélectionnez Créer.
Donnez à votre application logique un nom unique dans votre abonnement, puis sélectionnez le même abonnement, groupe de ressources et emplacement que votre hub IoT. Choisissez le type de plan Consommation.
Sélectionnez Revoir + créer.
Vérifiez vos paramètres, puis sélectionnez Créer.
Une fois la ressource créée, sélectionnez Accéder à la ressource.
Dans le concepteur Logic Apps, faites défiler la page vers le bas pour afficher Modèles. Choisissez Application logique vide afin de générer votre application logique à partir de zéro.
Sélectionner un déclencheur
Un déclencheur désigne un événement spécifique qui démarre votre application logique. Pour ce didacticiel, le déclencheur qui lance le flux de travail reçoit une demande via HTTP.
Dans la barre de recherche des connecteurs et des déclencheurs, tapez HTTP.
Parcourez les résultats, puis sélectionnez Requête - Lors de la réception d’une requête HTTP comme déclencheur.
Sélectionnez Utiliser l’exemple de charge utile pour générer le schéma.
Copiez le
json
ci-dessous et remplacez les valeurs d’espace réservé<>
par les vôtres.Collez le code JSON du Schéma d’événement connecté à l’appareil dans la zone de texte, puis sélectionnez Terminé :
[{ "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", "subject": "devices/LogicAppTestDevice", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-06-02T19:17:44.4383997Z", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "<hub name>", "deviceId": "LogicAppTestDevice", "moduleId" : "DeviceModuleID" }, "dataVersion": "1", "metadataVersion": "1" }]
Important
Veillez à coller l’extrait de code JSON dans la zone fournie par le lien Utiliser l’exemple de charge utile Utiliser pour générer un schéma et pas directement dans la zone Schéma JSON du corps de la demande. L’exemple de lien de charge utile permet de générer le contenu JSON en fonction de l’extrait de code JSON. Le code JSON final qui se termine dans le corps de la demande est différent de l’extrait de code JSON.
Cet événement est publié quand un appareil est connecté à un hub IoT.
Notes
Vous pouvez recevoir une notification contextuelle indiquant N’oubliez pas d’inclure un en-tête Content-Type défini sur application/JSON dans votre demande. Vous pouvez ignorer cette suggestion et passer à la section suivante.
Créer une action
Les actions sont toutes les étapes qui se produisent une fois que le déclencheur démarre le flux de travail de l’application logique. Pour ce didacticiel, l’action doit envoyer une notification par e-mail à partir de votre fournisseur d’e-mail.
Sélectionnez Nouvelle étape. Une fenêtre s’affiche, vous invitant à choisir une action.
Recherchez Outlook.
Selon votre fournisseur de messagerie, recherchez et sélectionnez le connecteur correspondant. Ce tutoriel utilise Outlook.com. Les étapes pour les autres fournisseurs d’e-mail sont similaires. Vous pouvez également utiliser Office 365 Outlook pour ignorer l’étape de connexion.
Sélectionnez l’action Envoyer un e-mail (V2).
Sélectionnez Se connecter, puis connectez-vous à votre compte de messagerie. Sélectionnez Oui pour permettre à l’application d’accéder à vos informations.
Créez votre modèle d’e-mail.
À : Entrez l’adresse e-mail qui recevra les e-mails de notification. Pour ce didacticiel, utilisez un compte de messagerie auquel vous pouvez accéder pour les tests.
Objet : Renseignez le texte de l’objet. Quand vous cliquez sur la zone de texte Objet, vous pouvez sélectionner du contenu dynamique à inclure. Par exemple, ce tutoriel utilise
IoT Hub alert: {eventType}
. Si vous ne pouvez pas voir le contenu dynamique, sélectionnez le lien hypertexte Ajouter du contenu dynamique pour activer ou désactiver l’affichage de contenu dynamique.
Après avoir sélectionné
eventType
, vous verrez la sortie du formulaire de messagerie jusqu’à présent. Sélectionnez Envoi et E-mail (V2) pour modifier le corps de votre e-mail.- Corps: écrivez le texte de votre e-mail. Sélectionnez les propriétés JSON à partir de l’outil de sélection pour inclure du contenu dynamique en fonction des données d’événement. Si vous ne voyez pas le contenu dynamique, sélectionnez le lien hypertexte Ajouter du contenu dynamique sous la zone de texte Corps. Si cette opération n’affiche pas les champs souhaités, cliquez sur plus dans l’écran Contenu dynamique pour inclure les champs de l’action précédente.
Votre modèle d’e-mail peut ressembler à cet exemple :
Sélectionnez Enregistrer dans le Concepteur Logic Apps.
Copier l’URL HTTP
Avant de quitter le Concepteur d’applications logiques, copiez l’URL qu’écoute votre application logique dans l’attente d’un déclencheur. Cette URL vous permet de configurer Event Grid.
Développez la zone de configuration de déclencheur Lors de la réception d’une demande HTTP en cliquant dessus.
Copiez la valeur du champ URL HTTP POST en sélectionnant le bouton de copie en regard de celui-ci.
Enregistrez cette URL afin de pouvoir y faire référence dans la section suivante.
Configurer l’abonnement pour les événements IoT Hub
Dans cette section, vous configurez votre hub IoT pour publier des événements à mesure qu’ils se produisent.
Accédez à votre hub IoT dans le portail Azure. Vous pouvez trouver votre hub IoT en sélectionnant Azure IoT Hub IoT Hub dans votre tableau de bord Azure, puis sélectionnez votre instance IoT Hub dans la liste des ressources.
Sélectionnez Événements.
Sélectionnez Abonnement aux événements.
Créez l’abonnement aux événements avec les valeurs suivantes :
Dans la section DÉTAILS DES ABONNEMENTS AUX ÉVÉNEMENTS :
- Indiquez un nom pour l’abonnement à un événement.
- Sélectionnez Event Grid Schema comme Schéma d’événement.
Dans la section DÉTAILS DE LA RUBRIQUE :
- Confirmez que le Type de rubrique est IoT Hub.
- Confirmez que le nom du hub IoT est défini en tant que valeur du champ Ressource source.
- Entrez un nom pour la rubrique système qui sera créé pour vous. Pour en savoir plus sur les rubriques système, consultez Vue d’ensemble des rubriques système.
Dans la section TYPES D’ÉVÉNEMENTS :
Sélectionnez la liste déroulante Filtrer sur les types d’événements.
Décochez les cases Appareil créé et Appareil supprimé, et laissez cochées uniquement les cases Appareil connecté et Appareil déconnecté.
Dans la section DÉTAILS DU POINT DE TERMINAISON :
- Sélectionnez Webhook comme Type de point de terminaison.
- Cliquez sur Sélectionner un point de terminaison, collez l’URL copiée à partir de votre application logique, puis confirmez la sélection.
Quand vous avez terminé, le volet doit se présenter comme l’exemple suivant :
Sélectionnez Create (Créer).
Simuler la connexion d’un nouvel appareil et l’envoi de données de télémétrie par celui-ci
Testez votre application logique en simulant rapidement une connexion d’appareil à l’aide de l’interface Azure CLI.
Sélectionnez le bouton Cloud Shell pour rouvrir votre terminal.
Exécutez la commande suivante pour créer une identité d’appareil simulé :
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
Le traitement peut prendre une minute. Vous verrez une impression JSON dans votre console une fois qu’elle a été créée.
Exécutez la commande suivante pour simuler la connexion de votre appareil à IoT Hub et l’envoi de données de télémétrie :
az iot device simulate -d simDevice -n {YourIoTHubName}
Quand l’appareil simulé se connecte à IoT Hub, vous recevrez un e-mail vous notifiant un événement « DeviceConnected ».
Une fois la simulation terminée, vous recevrez un e-mail vous notifiant l’événement « DeviceDisconnected ».
Nettoyer les ressources
Ce didacticiel utilise des ressources qui peuvent entraîner des frais sur votre abonnement Azure. Quand vous avez terminé de tester le tutoriel et vos résultats, désactivez ou supprimez les ressources que vous ne souhaitez pas conserver.
Pour supprimer toutes les ressources créées dans ce tutoriel, supprimez le groupe de ressources.
Sélectionnez Groupes de ressources, puis sélectionnez le groupe de ressources que vous avez créé pour ce tutoriel.
Dans le volet Groupe de ressources, sélectionnez Supprimer un groupe de ressources. Vous êtes invité à entrer le nom du groupe de ressources, après quoi vous pouvez le supprimer. Toutes les ressources qu’il contient sont également supprimées.
Étapes suivantes
- Découvrez-en plus sur la réaction aux événements IoT Hub en utilisant Event Grid pour déclencher des actions.
- Apprendre à commander des événements d’état de la connexion et de la déconnexion d’appareils
- Découvrez ce que vous pouvez faire d’autre avec Event Grid.
Pour obtenir la liste complète des connecteurs d’application logique pris en charge, consultez la