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.

End-to-end diagram

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

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

  1. Dans le portail Azure, utilisez la barre de recherche pour rechercher et sélectionner Service Bus.

  2. Sélectionnez Créer pour créer un espace de noms Service Bus.

  3. 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.
  4. Sélectionnez Revoir + créer.

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

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

  1. Dans la page Vue d’ensemble de votre espace de noms Service Bus, sélectionnez File d’attente.

    Screenshot of the namespace overview page to add a queue.

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

  3. Dans votre espace de noms Service Bus, sélectionnez Stratégies d’accès partagé dans la section Paramètres du menu des ressources.

  4. Sélectionnez la stratégie RootManageSharedAccessKey pour voir ses détails.

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

  1. Accédez à votre IoT Hub dans le Portail Azure.

  2. Dans le menu de la ressource, sous Paramètres du hub, sélectionnez Routage des messages et sélectionnez Ajouter.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

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

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Sélectionnez Créer + suivant.

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

    Screenshot that shows adding a route with a query.

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

  1. Dans le portail Azure, recherchez et sélectionnez Logic Apps.

  2. Sélectionnez Ajouter pour créer une application logique.

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

    Screenshot that shows creating a logic app in the Azure portal.

  4. Sélectionnez Revoir + créer.

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

  6. Une fois le déploiement terminé, sélectionnez Accéder à la ressource pour ouvrir votre application logique.

Configurer le déclencheur d’application logique

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

  2. Dans le concepteur, faites défiler vers le bas jusqu’à Modèles, puis sélectionnez Application logique vide.

    Screenshot that shows selecting the Blank Logic App template.

  3. Sélectionnez l’onglet Tous pour afficher tous les connecteurs et déclencheurs, puis sélectionnez Service Bus.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. Sous Déclencheurs, sélectionnez Lorsqu’un ou plusieurs messages arrivent dans une file d’attente (saisie semi-automatique) .

    Select the trigger for your logic app in the Azure portal.

  5. Créez une connexion Service Bus.

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

    2. Sélectionnez Créer.

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

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Sélectionnez Enregistrer dans le menu du Concepteur d’application logique pour enregistrer vos modifications.

Configurer l’action d’application logique

  1. Sélectionnez Nouvelle étape dans le Concepteur d’application logique.

  2. Créez une connexion de service SMTP.

    1. Recherchez et sélectionnez SMTP.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Sélectionnez Envoyer un e-mail (V3) comme action pour cette étape.

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

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Sélectionnez Créer.

  3. Configurez l’action Envoyer un e-mail.

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

      Choose SMTP connection email fields to include in email.

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

      Provide details for SMTP connection email fields.

  4. Sélectionnez Enregistrer pour enregistrer la connexion SMTP.

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

    1. Dans le volet Application logique, sous Outils de développement, sélectionnez Connexions d’API.

    2. Dans la liste des connexions d’API, sélectionnez la connexion SMTP.

    3. Dans le volet Connexion d’API SMTP, sous Général, sélectionnez Modifier une connexion d’API.

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

      Edit SMTP API connection in your logic app in the Azure portal.

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.

  1. 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 sur true quand la température dépasse 30 C.

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