Tutoriel : Envoyer des données d’appareil à stockage Azure à l’aide du routage des messages IoT Hub
Utilisez le routage des messages dans Azure IoT Hub pour envoyer des données de télémétrie à partir de vos appareils IoT Azure services tels que le stockage blob, les files d’attente Service Bus, les rubriques Service Bus et Event Hubs. Chaque hub IoT possède un point de terminaison intégré par défaut qui est compatible avec les concentrateurs d'événements. Vous pouvez également créer des points de terminaison personnalisés et acheminer des messages vers d’autres services Azure en définissant des requêtes de routage. Chaque message qui arrive au hub IoT est routé vers tous les points de terminaison dont les requêtes de routage correspondent. Si un message ne correspond à aucune des requêtes de routage définies, il est routé vers le point de terminaison par défaut.
Dans ce didacticiel, vous allez effectuer les tâches suivantes :
- Créez un hub IoT et envoyez-y des messages d’appareil.
- Créez un compte de stockage.
- Créez un point de terminaison personnalisé pour le compte de stockage et routez-le à partir du hub IoT.
- Afficher les messages d’appareil dans l’objet blob de compte de stockage.
Prérequis
Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Un hub IoT dans votre abonnement Azure. Si vous n’avez pas encore de hub, vous pouvez suivre les étapes décrites dans Créer un hub IoT.
Ce tutoriel utilise des exemples de code issus du SDK Azure IoT pour C#.
Vérifiez que le port 8883 est ouvert dans votre pare-feu. L’exemple dans ce tutoriel utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires. Pour plus d’informations sur les différentes façons de contourner ce problème, consultez Connexion à IoT Hub (MQTT).
En option, installez Azure IoT Explorer. Cet outil vous aide à observer les messages à mesure qu’ils arrivent à votre IoT Hub. Cet article utilise l’Explorateur Azure IoT.
Il n’y a pas d’autres conditions préalables pour le Portail Azure.
Inscrire un appareil et envoyer des messages à IoT Hub
Inscrire un nouvel appareil dans votre hub IoT
Important
Cet article comprend les étapes à suivre pour connecter un appareil en utilisant une signature d’accès partagé, également appelée « authentification par clé symétrique ». Cette méthode d’authentification est pratique pour les tests et les évaluations, mais l’authentification d’un appareil en utilisant des certificats X.509 est une approche plus sécurisée. Pour plus d’informations, consultez Meilleures pratiques en matière de sécurité > de sécurité de la connexion.
Connectez-vous au portail Azure et accédez à votre IoT Hub.
Sélectionnez Appareils dans la section Gestion des appareils du menu.
Sélectionnez Ajouter un appareil.
Indiquez un ID d’appareil et sélectionnez Enregistrer.
Le nouvel appareil doit maintenant figurer dans la liste des appareils. Si ce n’est pas le cas, actualisez la page. Sélectionnez l'ID du périphérique pour ouvrir la page de détails du périphérique.
Copiez l’une des clés de l’appareil et enregistrez-la. Vous allez utiliser cette valeur pour configurer l’exemple de code qui génère des messages de télémétrie d’appareil simulés.
Maintenant que vous avez un ID et une clé d’appareil, utilisez l’exemple de code pour commencer à envoyer des messages de télémétrie d’appareil à IoT Hub.
Conseil
Si vous suivez les étapes d’Azure CLI pour ce didacticiel, exécutez l’exemple de code dans une session distincte. De cette façon, vous pouvez autoriser l’exemple de code à continuer à s’exécuter pendant que vous suivez le reste des étapes CLI.
Si vous ne l’avez pas déjà fait dans le cadre des prérequis, téléchargez ou clonez maintenant le dépôt du SDK Azure IoT pour C# à partir de GitHub.
À partir du dossier dans lequel vous avez téléchargé ou cloné le SDK, accédez au dossier
azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample
.Installez le Kit de développement logiciel (SDK) C# Azure IoT et les dépendances nécessaires, comme spécifié dans le fichier
HubRoutingSample.csproj
:dotnet restore
Ouvrez le fichier
Parameters.cs
dans l’éditeur de votre choix. Ce fichier montre les paramètres qui sont pris en charge par l’exemple. Seul le paramètrePrimaryConnectionString
est utilisé dans cet article pour l’exécution de l’exemple. Passez en revue le code dans ce fichier. Aucune modification n’est requise.Générez et exécutez l’exemple de code à l’aide de la commande suivante :
Remplacez
<myDevicePrimaryConnectionString>
par la chaîne de connexion principale de votre appareil dans votre hub IoT.dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
Vous devez commencer à voir les messages imprimés à la sortie à mesure qu’ils sont envoyés à IoT Hub. Maintenez ce programme en cours d’exécution pendant le tutoriel.
Configurer l’Explorateur IoT pour afficher les messages
Configurez l’Explorateur IoT pour vous connecter à votre hub IoT et lire les messages à mesure qu’ils arrivent au point de terminaison intégré.
Tout d'abord, récupérez la chaîne de connexion de votre hub IoT.
Accédez à votre hub IoT dans le portail Azure.
Sélectionnez les stratégies d’accès partagé dans la section Paramètres de sécurité du menu.
Sélectionnez la stratégie iothubowner.
Copiez la chaîne de connexion principale.
Utilisez maintenant cette chaîne de connexion pour configurer l’Explorateur IoT pour votre hub IoT.
Ouvrez IoT Explorer sur votre machine de développement.
Sélectionnez Ajouter une connexion.
Collez la chaîne de connexion de votre hub dans la zone de texte.
Sélectionnez Enregistrer.
Une fois que vous vous connectez à votre IoT Hub, vous devez voir une liste d’appareils. Sélectionnez l’ID d’appareil que vous avez créé pour ce didacticiel.
Sélectionnez Télémétrie.
Votre appareil étant toujours en cours d’exécution, sélectionnez Démarrer. Si votre appareil n’est pas en cours d’exécution, vous ne voyez pas les données de télémétrie.
Vous devez voir les messages arrivant de votre appareil, avec les derniers affichés en haut.
Regardez les messages entrants pendant quelques instants pour vérifier que vous voyez trois types de messages différents : normal, stockage et critique. Une fois que vous l’avez vue, vous pouvez arrêter votre appareil.
Ces messages arrivent tous au point de terminaison intégré par défaut pour votre IoT Hub. Dans les sections suivantes, nous allons créer un point de terminaison personnalisé et acheminer certains de ces messages vers le stockage en fonction des propriétés du message. Ces messages s’arrêteront dans l’Explorateur IoT, car les messages accèdent uniquement au point de terminaison intégré lorsqu’ils ne correspondent pas à d’autres itinéraires dans IoT Hub.
Configurer le routage de messages
Vous allez acheminer les messages vers différentes ressources en fonction des propriétés attachées au message par le dispositif simulé. Les messages dont le routage n’est pas personnalisé sont envoyés au point de terminaison par défaut (messages/événements).
L’exemple d’application de ce didacticiel affecte une propriété de niveau à chaque message qu’il envoie au hub IoT. Chaque message est affecté de manière aléatoire à un niveau normal,de stockage ou critique.
La première étape consiste à configurer le point de terminaison vers lequel les données seront routées. La deuxième étape consiste à configurer la route des messages qui utilise ce point de terminaison. Après avoir configuré le routage, vous pouvez visualiser les points d'extrémité et les routes de messages dans le portail.
Créez un compte de stockage.
Créez un compte stockage Azure et un conteneur au sein de ce compte, qui contiendra les messages d’appareil routés vers celui-ci.
Dans le portail Azure, recherchez les comptes de stockage.
Sélectionnez Create (Créer).
Fournissez les valeurs suivantes pour votre compte de stockage :
Paramètre Valeur Abonnement Sélectionnez le même abonnement que celui qui contient votre hub IoT. Groupe de ressources Sélectionnez le même groupe de ressources que celui qui contient votre hub IoT. Nom du compte de stockage Fournissez un nom unique au monde pour votre compte de stockage. Performances Acceptez la valeur par défaut Standard. Vous pouvez accepter toutes les autres valeurs par défaut en sélectionnant Vérifier + créer.
Une fois la validation terminée, sélectionnez Créer.
Une fois le déploiement effectué, sélectionnez Accéder à la ressource.
Dans le menu du compte de stockage, sélectionnez Conteneurs dans la section Stockage de données .
Sélectionnez + Conteneur pour créer un conteneur.
Donnez un nom à votre conteneur et sélectionnez Créer.
Router vers un compte de stockage
Configurez maintenant le routage pour le compte de stockage. Dans cette section, vous définissez un nouveau point de terminaison qui pointe vers le compte de stockage que vous avez créé. Ensuite, créez un itinéraire qui filtre les messages dans lesquels la propriété de niveau est définie sur le stockage et routez-les vers le point de terminaison de stockage.
Notes
Les données peuvent être écrites dans un espace de stockage d’objets blob au format Apache Avro, qui est la valeur par défaut, ou JSON.
Le format d’encodage peut être défini uniquement au moment de configurer le point de terminaison du stockage d’objets blob. Le format ne peut pas être modifié pour un point de terminaison déjà configuré. Quand vous utilisez l’encodage JSON, vous devez définir contentType sur JSON et contentEncoding sur UTF-8 dans les propriétés système de message.
Pour plus d’informations sur l’utilisation d’un point de terminaison de stockage d’objets blob, voir les recommandations en matière de routage vers un espace de stockage.
Important
Cet article comprend les étapes à suivre pour se connecter à un service à l’aide d’une signature d’accès partagé. Cette méthode d’authentification est pratique pour les tests et les évaluations, mais l’authentification à un service avec Microsoft Entra ID ou des identités managées est une approche plus sécurisée. Pour plus d’informations, consultez Meilleures pratiques de sécurité > Sécurité du cloud.
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 de stockage en fournissant les informations suivantes :
Paramètre Valeur Type de point de terminaison Sélectionnez Stockage. Nom du point de terminaison Fournissez un nom unique pour ce point de terminaison. Conteneur de stockage Azure Sélectionnez Choisir un conteneur. Suivez les invites pour sélectionner le compte de stockage et le conteneur que vous avez créés dans la section précédente. Encodage Sélectionner JSON. Si ce champ est grisé, votre région de compte de stockage ne prend pas en charge JSON. Dans ce cas, poursuivez avec AVRO par défaut. Acceptez les valeurs par défaut pour le reste des paramètres et sélectionnez Créer + Suivant.
Sous l’onglet Itinéraire, fournissez les informations suivantes pour créer un itinéraire qui pointe vers le point de terminaison de stockage que vous avez créé :
Paramètre Valeur Nom Créez un nom pour votre itinéraire. Source de données Vérifiez que les messages de télémétrie d’appareil sont sélectionnés dans la liste déroulante. Activer la route Assurez-vous que ce champ est vérifié. Requête de routage entrez level="storage"
pour la chaîne de requête.Sélectionnez Créer + Ignorer les enrichissements.
Afficher les messages acheminés
Une fois l’itinéraire créé dans IoT Hub et activé, il démarre immédiatement le routage des messages qui répondent à sa condition de requête vers le point de terminaison de stockage.
Surveiller le point de terminaison intégré avec l’Explorateur IoT
Revenez à la session De l’Explorateur IoT sur votre ordinateur de développement. Rappelez-vous que l’Explorateur IoT surveille le point de terminaison intégré de votre hub IoT. Cela signifie que vous devez maintenant voir uniquement les messages qui ne sont pas routés par l’itinéraire personnalisé que nous avons créé.
Redémarrez l’exemple en exécutant le code. Regardez les messages entrants pendant quelques instants et vous ne devriez voir que les messages sur lesquels level
est défini normal
ou critical
.
Afficher les messages dans le conteneur de stockage
Vérifiez que les messages arrivent dans le conteneur de stockage.
Dans le Portail Azure, accédez à votre compte de stockage.
Sélectionnez Conteneurs dans la section Stockage de données du menu.
Sélectionnez le conteneur que vous avez créé pour ce tutoriel.
Il doit y avoir un dossier portant le nom de votre hub IoT. Explorez la structure de fichiers jusqu’à ce que vous accédiez à un fichier .json .
Sélectionnez le fichier JSON, puis Télécharger pour télécharger le fichier JSON. Vérifiez que le fichier contient les messages de votre appareil dont la propriété
level
a la valeurstorage
.Arrêtez d’exécuter l’exemple.
Nettoyer les ressources
Si vous voulez supprimer toutes les ressources Azure que vous avez utilisées pour ce tutoriel, supprimez le groupe de ressources. Cette opération supprime toutes les ressources contenues dans le groupe. Si vous ne souhaitez pas supprimer l’ensemble du groupe de ressources, utilisez la Portail Azure pour localiser et supprimer les ressources individuelles.
Si vous souhaitez passer au tutoriel suivant, conservez les ressources créées ici.
- Dans le Portail Azure, accédez au groupe de ressources qui contient le hub IoT et le compte de stockage pour ce didacticiel.
- Passez en revue toutes les ressources qui se trouvent dans le groupe de ressources pour déterminer celles que vous souhaitez nettoyer.
- Si vous voulez supprimer toutes les ressources, sélectionnez Supprimer le groupe de ressources.
- Si vous souhaitez uniquement supprimer certaines ressources, utilisez les cases à cocher en regard de chaque nom de ressource pour sélectionner celles que vous souhaitez supprimer. Puis sélectionnez Supprimer.
Étapes suivantes
Dans ce tutoriel, vous avez appris à créer un point de terminaison personnalisé pour une ressource Azure, puis à créer un itinéraire pour envoyer des messages d’appareil à ce point de terminaison. Passez au tutoriel suivant pour découvrir comment enrichir des messages avec des données supplémentaires qui peuvent être utilisées pour simplifier le traitement en aval