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.

Créer un hub IoT

Vous pouvez rapidement créer un hub IoT à l’aide du terminal Azure Cloud Shell dans le portail.

  1. Connectez-vous au portail Azure.

  2. En haut à droite dans la page, sélectionnez le bouton Cloud Shell.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Utilisez la commande suivante pour créer un groupe de ressources :

    az group create --name {your resource group name} --location westus
    
  4. 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 
    
  5. 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

  1. 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.

    Screenshot of how to select the logic app from a list of resources.

  2. Sur l’écran suivant, sélectionnez Créer.

  3. 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.

    Screenshot of how to configure your logic app.

  4. Sélectionnez Revoir + créer.

  5. Vérifiez vos paramètres, puis sélectionnez Créer.

  6. Une fois la ressource créée, sélectionnez Accéder à la ressource.

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

    Screenshot of the Logic App Designer templates.

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.

  1. Dans la barre de recherche des connecteurs et des déclencheurs, tapez HTTP.

  2. Parcourez les résultats, puis sélectionnez Requête - Lors de la réception d’une requête HTTP comme déclencheur.

    Select HTTP request trigger

  3. Sélectionnez Utiliser un exemple de charge utile pour générer un schéma.

    Use sample payload

  4. Copiez le json ci-dessous et remplacez les valeurs d’espace réservé <> par les vôtres.

  5. 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.

  1. Sélectionnez Nouvelle étape. Une fenêtre s’affiche, vous invitant à choisir une action.

  2. Recherchez Outlook.

  3. 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.

    Select email provider connector

  4. Sélectionnez l’action Envoyer un e-mail (V2).

  5. Sélectionnez Se connecter, puis connectez-vous à votre compte de messagerie. Sélectionnez Oui pour permettre à l’application d’accéder à vos informations.

  6. 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.

    Screenshot of the condensed body output form.

    • 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 :

    Screenshot of how to create an event email in the template.

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

  1. Développez la zone de configuration de déclencheur Lors de la réception d’une demande HTTP en cliquant dessus.

  2. Copiez la valeur du champ URL HTTP POST en sélectionnant le bouton de copie en regard de celui-ci.

    Copy the HTTP POST URL

  3. 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.

  1. 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.

  2. Sélectionnez Événements.

    Open the Event Grid details

  3. Sélectionnez Abonnement aux événements.

    Create new event subscription

  4. Créez l’abonnement aux événements avec les valeurs suivantes :

    1. Dans la section DÉTAILS DES ABONNEMENTS AUX ÉVÉNEMENTS :

      1. Indiquez un nom pour l’abonnement à un événement.
      2. Sélectionnez Event Grid Schema comme Schéma d’événement.
    2. Dans la section DÉTAILS DE LA RUBRIQUE :

      1. Confirmez que le Type de rubrique est IoT Hub.
      2. Confirmez que le nom du hub IoT est défini en tant que valeur du champ Ressource source.
      3. 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.
    3. Dans la section TYPES D’ÉVÉNEMENTS :

      1. Sélectionnez la liste déroulante Filtrer sur les types d’événements.

      2. Décochez les cases Appareil créé et Appareil supprimé, et laissez cochées uniquement les cases Appareil connecté et Appareil déconnecté.

        select subscription event types

    4. Dans la section DÉTAILS DU POINT DE TERMINAISON :

      1. Sélectionnez Webhook comme Type de point de terminaison.
      2. Cliquez sur Sélectionner un point de terminaison, collez l’URL copiée à partir de votre application logique, puis confirmez la sélection.

      select endpoint url

      Quand vous avez terminé, le volet doit se présenter comme l’exemple suivant :

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. Cliquez sur 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.

  1. Sélectionnez le bouton Cloud Shell pour rouvrir votre terminal.

  2. 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.

  3. 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}
    
  4. Quand l’appareil simulé se connecte à IoT Hub, vous recevrez un e-mail vous notifiant un événement « DeviceConnected ».

  5. Une fois la simulation terminée, vous recevrez un e-mail vous notifiant l’événement « DeviceDisconnected ».

    Screenshot of the email you should receive.

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.

  1. Sélectionnez Groupes de ressources, puis sélectionnez le groupe de ressources que vous avez créé pour ce tutoriel.

  2. 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

Pour obtenir la liste complète des connecteurs d’application logique pris en charge, consultez la