Tutoriel : Envoyer des notifications par e-mail concernant des événements Azure IoT Hub à l’aide d’Event Grid et de Logic AppsTutorial: Send email notifications about Azure IoT Hub events using Event Grid and 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.Azure Event Grid enables you to react to events in IoT Hub by triggering actions in your downstream business applications.

Cet article présente un exemple de configuration qui utilise IoT Hub et Event Grid.This article walks through a sample configuration that uses IoT Hub and 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.At the end, you have an Azure logic app set up to send a notification email every time a device connects or disconnects to your IoT hub. Event Grid peut être utilisé pour obtenir en temps voulu une notification sur la déconnexion des appareils critiques.Event Grid can be used to get timely notification about critical devices disconnecting. L’affichage des métriques et des diagnostics dans les journaux/alertes peut prendre plusieurs minutes (à savoir, 20 minutes ou plus, même si nous ne voulons pas chiffrer ce délai).Metrics and Diagnostics can take several (i.e. 20 or more -- though we don't want to put a number on it) minutes to show up in logs/alerts. Cela peut être inacceptable pour une infrastructure critique.That might be unacceptable for critical infrastructure.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

  • 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.An email account from any email provider that is supported by Azure Logic Apps, such as Office 365 Outlook or Outlook.com. Ce compte e-mail permet d’envoyer les notifications d’événements.This email account is used to send the event notifications.
  • Utilisez l’environnement Bash dans Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.

    Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window

  • Si vous préférez, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.If you prefer, install the Azure CLI to run CLI reference commands.

    • Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal.To finish the authentication process, follow the steps displayed in your terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.

    • Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation.When you're prompted, install Azure CLI extensions on first use. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.For more information about extensions, see Use extensions with the Azure CLI.

    • Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées.Run az version to find the version and dependent libraries that are installed. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.To upgrade to the latest version, run az upgrade.

Créer un hub IoTCreate an IoT hub

Vous pouvez rapidement créer un hub IoT à l’aide du terminal Azure Cloud Shell dans le portail.You can quickly create a new IoT hub using the Azure Cloud Shell terminal in the portal.

  1. Connectez-vous au portail Azure.Sign in to the Azure portal.

  2. En haut à droite dans la page, sélectionnez le bouton Cloud Shell.On the upper right of the page, select the Cloud Shell button.

    Bouton Cloud Shell

  3. Utilisez la commande suivante pour créer un groupe de ressources :Run the following command to create a new resource group:

    az group create --name {your resource group name} --location westus
    
  4. Exécutez la commande suivante pour créer un hub IoT :Run the following command to create an IoT hub:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. Réduisez le terminal Cloud Shell.Minimize the Cloud Shell terminal. Vous retournerez à l’interpréteur de commandes plus tard dans ce tutoriel.You will return to the shell later in the tutorial.

Créer une application logiqueCreate a logic app

Créez ensuite une application logique, puis ajoutez un déclencheur Event Grid HTTP qui traite les requêtes en provenance du hub IoT.Next, create a logic app and add an HTTP event grid trigger that processes requests from IoT hub.

Créer une ressource d’application logiqueCreate a logic app resource

  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.In the Azure portal, select Create a resource, then type "logic app" in the search box and select return. Sélectionnez Application logique dans les résultats.Select Logic App from the results.

    Créer une application logique

  2. Sur l’écran suivant, sélectionnez Créer.On the next screen, select Create.

  3. Donnez à votre application logique un nom qui est unique dans votre abonnement, puis sélectionnez les mêmes abonnement, groupe de ressources et emplacement que votre hub IoT.Give your logic app a name that's unique in your subscription, then select the same subscription, resource group, and location as your IoT hub.

    Champs pour la création d’une application logique

  4. Sélectionnez Revoir + créer.Select Review + create.

  5. Vérifiez vos paramètres, puis sélectionnez Créer.Verify your settings and then select Create.

  6. Une fois la ressource créée, sélectionnez Accéder à la ressource.Once the resource is created, select Go to resource.

  7. Dans le concepteur Logic Apps, faites défiler la page vers le bas pour afficher Modèles.In the Logic Apps Designer, page down to see Templates. Choisissez Application logique vide afin de générer votre application logique à partir de zéro.Choose Blank Logic App so that you can build your logic app from scratch.

Sélectionner un déclencheurSelect a trigger

Un déclencheur désigne un événement spécifique qui démarre votre application logique.A trigger is a specific event that starts your logic app. Pour ce didacticiel, le déclencheur qui lance le flux de travail reçoit une demande via HTTP.For this tutorial, the trigger that sets off the workflow is receiving a request over HTTP.

  1. Dans la barre de recherche des connecteurs et des déclencheurs, tapez HTTP.In the connectors and triggers search bar, type HTTP.

  2. Parcourez les résultats, puis sélectionnez Requête - Lors de la réception d’une requête HTTP comme déclencheur.Scroll through the results and select Request - When an HTTP request is received as the trigger.

    Sélectionner le déclencheur de requête HTTP

  3. Sélectionnez Utiliser l’exemple de charge utile pour générer le schéma.Select Use sample payload to generate schema.

    Utiliser un exemple de charge utile

  4. Collez le code JSON du Schéma d’événement connecté à l’appareil dans la zone de texte, puis sélectionnez Terminé :Paste the Device connected event schema JSON into the text box, then select Done:

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<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": "egtesthub1",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    Cet événement est publié quand un appareil est connecté à un hub IoT.This event publishes when a device is connected to an IoT hub.

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.You may receive a pop-up notification that says, Remember to include a Content-Type header set to application/json in your request. Vous pouvez ignorer cette suggestion et passer à la section suivante.You can safely ignore this suggestion, and move on to the next section.

Créer une actionCreate an 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.Actions are any steps that occur after the trigger starts the logic app workflow. Pour ce didacticiel, l’action doit envoyer une notification par e-mail à partir de votre fournisseur d’e-mail.For this tutorial, the action is to send an email notification from your email provider.

  1. Sélectionnez Nouvelle étape.Select New step. Une fenêtre permettant de Choisir une action s’ouvre.This opens a window to Choose an action.

  2. Recherchez Outlook.Search for Outlook.

  3. Selon votre fournisseur de messagerie, recherchez et sélectionnez le connecteur correspondant.Based on your email provider, find and select the matching connector. Ce tutoriel utilise Outlook.com.This tutorial uses Outlook.com. Les étapes pour les autres fournisseurs d’e-mail sont similaires.The steps for other email providers are similar.

    Sélectionner le connecteur du fournisseur d’e-mail

  4. Sélectionnez l’action Envoyer un e-mail (V2).Select the Send an email (V2) action.

  5. Sélectionnez Se connecter, puis connectez-vous à votre compte de messagerie.Select Sign in and sign in to your email account. Sélectionnez Oui pour permettre à l’application d’accéder à vos informations.Select Yes to let the app access your info.

  6. Créez votre modèle d’e-mail.Build your email template.

    • À : Entrez l’adresse e-mail qui recevra les e-mails de notification.To: Enter the email address to receive the notification emails. Pour ce didacticiel, utilisez un compte de messagerie auquel vous pouvez accéder pour les tests.For this tutorial, use an email account that you can access for testing.

    • Objet : Renseignez le texte de l’objet.Subject: Fill in the text for the subject. Quand vous cliquez sur la zone de texte Objet, vous pouvez sélectionner du contenu dynamique à inclure.When you click on the Subject text box, you can select dynamic content to include. Par exemple, ce tutoriel utilise IoT Hub alert: {eventType}.For example, this tutorial uses IoT Hub alert: {eventType}. Si vous ne voyez pas de contenu dynamique, sélectionnez le lien hypertexte Ajouter du contenu dynamique : cela l’active ou le désactive.If you can't see Dynamic content, select the Add dynamic content hyperlink -- this toggles it on and off.

    • Corps: écrivez le texte de votre e-mail.Body: Write the text for your email. 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.Select JSON properties from the selector tool to include dynamic content based on event data. Si vous ne voyez pas le contenu dynamique, sélectionnez le lien hypertexte Ajouter du contenu dynamique sous la zone de texte Corps.If you can't see the Dynamic content, select the Add dynamic content hyperlink under the Body text box. 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.If it doesn't show you the fields you want, click more in the Dynamic content screen to include the fields from the previous action.

    Votre modèle d’e-mail peut ressembler à cet exemple :Your email template may look like this example:

    Renseigner les informations d’e-mail

  7. Sélectionnez Enregistrer dans le Concepteur Logic Apps.Select Save in the Logic Apps Designer.

Copier l’URL HTTPCopy the HTTP URL

Avant de quitter le Concepteur d’applications logiques, copiez l’URL qu’écoutent vos applications logiques dans l’attente d’un déclencheur.Before you leave the Logic Apps Designer, copy the URL that your logic apps is listening to for a trigger. Cette URL vous permet de configurer Event Grid.You use this URL to configure Event Grid.

  1. Développez la zone de configuration de déclencheur Lors de la réception d’une demande HTTP en cliquant dessus.Expand the When a HTTP request is received trigger configuration box by clicking on it.

  2. Copiez la valeur du champ URL HTTP POST en sélectionnant le bouton de copie en regard de celui-ci.Copy the value of HTTP POST URL by selecting the copy button next to it.

    Copier l’URL HTTP POST

  3. Enregistrez cette URL afin de pouvoir y faire référence dans la section suivante.Save this URL so that you can refer to it in the next section.

Configurer l’abonnement pour les événements IoT HubConfigure subscription for IoT Hub events

Dans cette section, vous configurez votre hub IoT pour publier des événements à mesure qu’ils se produisent.In this section, you configure your IoT Hub to publish events as they occur.

  1. Accédez à votre hub IoT dans le portail Azure.In the Azure portal, navigate to your IoT hub. Pour ce faire, sélectionnez Groupes de ressources, puis le groupe de ressources de ce tutoriel. Sélectionnez ensuite votre hub IoT dans la liste de ressources.You can do this by selecting Resource groups, then select the resource group for this tutorial, and then select your IoT hub from the list of resources.

  2. Sélectionnez Événements.Select Events.

    Ouvrir les détails Event Grid

  3. Sélectionnez Abonnement aux événements.Select Event subscription.

    Créer un abonnement aux événements

  4. Créez l’abonnement aux événements avec les valeurs suivantes :Create the event subscription with the following values:

    1. Dans la section DÉTAILS DES ABONNEMENTS AUX ÉVÉNEMENTS :In the EVENT SUBSCRIPTION DETAILS section:

      1. Indiquez un nom pour l’abonnement à un événement.Provide a name for the event subscription.
      2. Sélectionnez Event Grid Schema comme Schéma d’événement.Select Event Grid Schema for Event Schema.
    2. Dans la section DÉTAILS DE LA RUBRIQUE :In the TOPIC DETAILS section:

      1. Confirmez que le Type de rubrique est IoT Hub.Confirm that the Topic type is set to IoT Hub.
      2. Confirmez que le nom du hub IoT est défini en tant que valeur du champ Ressource source.Confirm that the name of the IoT hub is set as the value for the Source Resource field.
      3. Entrez un nom pour la rubrique système qui sera créé pour vous.Enter a name for the system topic that will be created for you. Pour en savoir plus sur les rubriques système, consultez Vue d’ensemble des rubriques système.To learn about system topics, see Overview of system topics.
    3. Dans la section TYPES D’ÉVÉNEMENTS :In the EVENT TYPES section:

      1. Sélectionnez la liste déroulante Filtrer sur les types d’événements.Select the Filter to Event Types drop-down.

      2. Décochez les cases Appareil créé et Appareil supprimé, et laissez uniquement les cases Appareil connecté et Appareil déconnecté cochées.Deselect the Device Created and Device Deleted checkboxes, leaving only the Device Connected and Device Disconnected checkboxes selected.

        sélectionner les types d’événements d’abonnement

    4. Dans la section DÉTAILS DU POINT DE TERMINAISON :In the ENDPOINT DETAILS section:

      1. Sélectionnez Webhook comme Type de point de terminaison.Select Endpoint Type as Web Hook.
      2. Cliquez sur Sélectionner un point de terminaison, collez l’URL copiée à partir de votre application logique, puis confirmez la sélection.Click select an endpoint, paste the URL that you copied from your logic app, and confirm selection.

      sélectionner l’URL du point de terminaison

      Quand vous avez terminé, le volet doit ressembler à l’exemple suivant :When you're done, the pane should look like the following example:

      Exemple de formulaire d’abonnement aux événements

  5. Sélectionnez Create (Créer).Select Create.

Simuler la connexion d’un nouvel appareil et l’envoi de données de télémétrie par celui-ciSimulate a new device connecting and sending telemetry

Testez votre application logique en simulant rapidement une connexion d’appareil à l’aide de l’interface Azure CLI.Test your logic app by quickly simulating a device connection using the Azure CLI.

  1. Sélectionnez le bouton Cloud Shell pour rouvrir votre terminal.Select the Cloud Shell button to re-open your terminal.

  2. Exécutez la commande suivante pour créer une identité d’appareil simulé :Run the following command to create a simulated device identity:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    
  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 :Run the following command to simulate connecting your device to IoT Hub and sending telemetry:

    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 ».When the simulated device connects to IoT Hub, you will receive an email notifying you of a "DeviceConnected" event.

  5. Une fois la simulation terminée, vous recevez un e-mail vous notifiant l’événement « DeviceDisconnected ».When the simulation completes, you will receive an email notifying you of a "DeviceDisconnected" event.

    Exemple de message d’alerte

Nettoyer les ressourcesClean up resources

Ce didacticiel utilise des ressources qui peuvent entraîner des frais sur votre abonnement Azure.This tutorial used resources that incur charges on your Azure subscription. Quand vous avez terminé de tester le tutoriel et vos résultats, désactivez ou supprimez les ressources que vous ne souhaitez pas conserver.When you're finished trying out the tutorial and testing your results, disable or delete resources that you don't want to keep.

Pour supprimer toutes les ressources créées dans ce tutoriel, supprimez le groupe de ressources.To delete all of the resources created in this tutorial, delete the resource group.

  1. Sélectionnez Groupes de ressources, puis sélectionnez le groupe de ressources que vous avez créé pour ce tutoriel.Select Resource groups, then select the resource group you created for this tutorial.

  2. Dans le volet Groupe de ressources, sélectionnez Supprimer un groupe de ressources.On the Resource group pane, select Delete resource group. Vous êtes invité à entrer le nom du groupe de ressources, après quoi vous pouvez le supprimer.You are prompted to enter the resource group name, and then you can delete it. Toutes les ressources qu’il contient sont également supprimées.All of the resources contained therein are also removed.

Étapes suivantesNext steps

Pour obtenir la liste complète des connecteurs d’application logique pris en charge, consultez laFor a complete list of supported Logic App connectors, see the