Vue d’ensemble de la fonctionnalité broker MQTT dans Azure Event Grid
Azure Event Grid permet à vos clients MQTT de communiquer entre eux et avec les services Azure pour prendre en charge vos solutions IoT (Internet des objets).
La fonctionnalité répartiteur MQTT d’Azure Event Grid vous permet d’accomplir les scénarios suivants :
- Ingérer la télémétrie à l’aide d’un modèle de messagerie many-to-one. Ce modèle permet à l’application de partager la charge de gestion du nombre élevé de connexions à des appareils à Event Grid.
- Contrôler vos clients MQTT à l’aide du modèle de messagerie requête-réponse (one-to-one). Ce modèle permet à n’importe quel client de communiquer avec n’importe quel autre client sans restriction, quels que soient les rôles des clients.
- Diffusez des alertes à plusieurs clients à l’aide du modèle de messagerie one-to-many. Ce modèle permet à l’application de publier un seul message que le service réplique pour chaque client intéressé.
- Intégrez les données de vos clients MQTT en acheminant les messages MQTT vers les services Azure et les Webhooks via la fonctionnalité de livraison HTTP Push. Cette intégration aux services Azure vous permet de créer des pipelines de données qui commencent par l’ingestion de données à partir de vos appareils IoT.
Vous trouverez des exemples de code illustrant ces scénarios dans ce référentiel.
Le répartiteur MQTT est idéal pour l’implémentation de scénarios automobiles et de mobilité, entre autres. Consultez l’architecture de référence pour découvrir comment créer des solutions sécurisées et évolutives pour connecter des millions de véhicules au cloud, à l’aide des services de messagerie et d’analytique des données d’Azure.
Concepts clés
Voici une liste des concepts clés impliqués dans la fonctionnalité répartiteur MQTT d’Azure Event Grid.
MQTT
MQTT est un protocole de transport de messagerie publication-abonnement conçu pour les environnements contraints. Il s’agit désormais de la norme de communication de référence pour les scénarios IoT en raison de son efficacité, de sa scalabilité et de sa fiabilité. Le répartiteur MQTT permet aux clients de publier et de s’abonner à des messages via les protocoles MQTT v3.1.1, MQTT v3.1.1 sur WebSockets, MQTT v5 et MQTT v5 sur WebSockets. La liste suivante présente quelques-unes des principales fonctionnalités du répartiteur MQTT :
Fonctionnalités de MQTT v5 :
- Dernières volontés et testament (LWT) avertit vos clients MQTT des déconnexions abruptes d’autres clients MQTT. Vous pouvez utiliser LWT pour garantir un flux de communication prévisible et fiable entre les clients MQTT lors de déconnexions inattendues.
- Les propriétés utilisateur vous permettent d’ajouter des paires clé-valeur personnalisées dans l’en-tête du message pour fournir plus de contexte sur le message. Par exemple, incluez l’objectif ou l’origine du message afin que le destinataire puisse gérer le message efficacement.
- Le modèle requête-réponse permet à vos clients de tirer parti du modèle asynchrone requête-réponse standard, en spécifiant la rubrique de réponse et l’ID de corrélation dans la requête pour que le client réponde sans configuration préalable.
- L’intervalle d’expiration des messages vous permet de déclarer au répartiteur MQTT quand ignorer un message qui n’est plus pertinent ou valide. Par exemple, ignorez les commandes ou les alertes obsolètes.
- Les alias de rubrique aident vos clients à réduire la taille du champ de rubrique, ce qui rend le transfert de données moins coûteux.
- La taille maximale des messages permet à vos clients de contrôler la taille maximale des messages qu’ils peuvent gérer à partir du serveur.
- Maximum de réception permet à vos clients de contrôler le débit des messages en fonction de leurs fonctionnalités, telles que la vitesse de traitement ou les fonctionnalités de stockage.
- Le démarrage propre et l’expiration de session permettent à vos clients d’optimiser la fiabilité et la sécurité de la session en conservant les informations et les messages d’abonnement du client pendant un intervalle de temps configurable.
- Les accusés de réception négatifs permettent à vos clients de réagir efficacement aux différents codes d’erreur.
- Les paquets de déconnexion envoyés par le serveur permettent à vos clients de gérer efficacement les déconnexions.
D’autres fonctionnalités MQTT v5 seront ajoutées au répartiteur MQTT à l’avenir pour s’aligner davantage sur les spécifications MQTT. Les éléments suivants détaillent les différences actuelles entre les fonctionnalités prises en charge par MQTT broker et les spécifications MQTT v5 : les messages Will, l’indicateur retain, le classement des messages et QoS 2 ne sont pas pris en charge.
Fonctionnalités de MQTT v3.1.1 :
- Dernières volontés et testament (LWT) avertit vos clients MQTT des déconnexions abruptes d’autres clients MQTT. Vous pouvez utiliser LWT pour garantir un flux de communication prévisible et fiable entre les clients MQTT lors de déconnexions inattendues.
- Les sessions persistantes garantissent la fiabilité en conservant les informations et les messages d’abonnement du client lors de la déconnexion d’un client.
- QoS 0 et 1 permettent à vos clients de contrôler l’efficacité et la fiabilité de la communication.
D’autres fonctionnalités MQTT v3.1.1 seront ajoutées au répartiteur MQTT à l’avenir pour s’aligner davantage sur les spécifications MQTT. Les points suivants détaillent les différences actuelles entre les fonctionnalités supportées par le courtier MQTT et la spécification MQTT v3.1.1 : l’indicateur de rétention, le classement des messages et QoS 2 ne sont pas pris en charge.
En savoir plus sur le répartiteur MQTT et les limitations actuelles.
Modèle de messagerie publication-abonnement
Le modèle de messagerie publication-abonnement fournit une communication évolutive et asynchrone aux clients. Il permet aux clients de partager la charge de la gestion d’un nombre élevé de connexions et de messages au service. Grâce au modèle de messagerie publication-abonnement, vos clients peuvent communiquer efficacement à l’aide de modèles de messagerie one-to-many, many-to-one, et one-to-one.
- Le modèle de messagerie one-to-many permet aux clients de publier un seul message que le service réplique pour chaque client intéressé.
- Le modèle de messagerie many-to-one permet aux clients de décharger la charge de gestion du nombre élevé de connexions au répartiteur MQTT.
- Le modèle de messagerie one-to-one permet à n’importe quel client de communiquer avec n’importe quel autre client sans restriction, quels que soient les rôles des clients.
Espace de noms
L’espace de noms Event Grid est un conteneur de gestion pour les ressources prenant en charge la fonctionnalité broker de MQTT, ainsi que les ressources prenant en charge la fonctionnalité de transmission de type pull. Votre client MQTT peut se connecter au répartiteur MQTT et publier/s’abonner à des messages, tandis que le répartiteur MQTT authentifie vos clients, autorise les demandes de publication/d’abonnement et transfère les messages aux clients intéressés. En savoir plus sur le concept d’espace de noms.
Clients
Les clients font référence aux appareils ou applications IoT qui publient des messages MQTT et s’y abonnent.
Les appareils IoT sont des objets physiques connectés à Internet pour transmettre des données de télémétrie et recevoir des commandes. Ces appareils peuvent être des capteurs, des appliances, des machines ou d’autres objets équipés de capteurs et de logiciels incorporés. Les capteurs et les logiciels leur permettent de communiquer et d’interagir entre eux et l’environnement qui les entoure. La valeur des appareils IoT réside dans leur capacité à fournir des données et des insights en temps réel, ce qui permet aux entreprises et aux individus de prendre des décisions éclairées et d’améliorer l’efficacité et la productivité.
Les applications IoT sont des logiciels conçus pour interagir avec des appareils IoT et les traiter. Ils incluent généralement des composants tels que la collecte de données, le traitement, le stockage, la visualisation et l’analytique. Ces applications permettent aux utilisateurs de surveiller et de contrôler les appareils connectés, d’automatiser les tâches et d’obtenir un aperçu à partir des données générées par les appareils IoT.
Authentification du client
Event Grid dispose d’un registre de clients qui stocke des informations sur les clients autorisés à s’y connecter. Pour qu’un client puisse se connecter, il doit y avoir une entrée pour ce client dans le registre du client. Quand un client se connecte au répartiteur MQTT, il doit s’authentifier auprès de lui sur la base d’informations d’identification stockées dans le registre des identités. Le MQTT broker prend en charge les mécanismes d’authentification du client suivants :
- Authentification par certificat X.509, qui est la norme d’authentification du secteur dans les appareils IoT.
- Microsoft Entra IDauthentication, qui est la norme d’authentification d’Azure pour les applications. En savoir plus sur l’authentification du client MQTT.
- Authentification OAuth 2.0 (JSON Web Token), qui fournit une option légère, sécurisée et flexible pour les clients MQTT qui ne sont pas approvisionnés dans Azure.
Contrôle d’accès
Le contrôle d’accès est essentiel pour les scénarios IoT compte tenu de l’immensité de l’échelle des environnements IoT et des défis de sécurité uniques des appareils contraints. Event Grid fournit un contrôle d’accès en fonction du rôle (RBAC) via un modèle de contrôle d’accès flexible qui vous permet de gérer l’autorisation des clients à publier ou à s’abonner à des rubriques.
Étant donné l’immensité de l’échelle des environnements IoT, l’attribution d’autorisations pour chaque client à chaque rubrique est extrêmement fastidieuse. Le contrôle d’accès flexible d’Event Grid résout ce défi de mise à l’échelle en regroupant les clients et les rubriques en groupes de clients et espaces de rubrique. Après avoir créé des groupes de clients et des espaces de rubrique, vous pouvez configurer une liaison d’autorisation pour accorder l’accès à un groupe de clients pour publier ou s’abonner à un espace de rubrique.
Les espaces de rubrique fournissent également un contrôle d’accès granulaire en vous permettant de contrôler l’autorisation de chaque client au sein d’un groupe de clients pour publier ou s’abonner à sa propre rubrique. Ce contrôle d’accès granulaire est obtenu à l’aide de variables dans les modèles de rubrique. En savoir plus sur le contrôle d’accès.
Routage
Event Grid vous permet d’acheminer vos messages MQTT vers des services Azure ou des webhooks pour un traitement ultérieur. Par conséquent, vous pouvez créer des solutions de bout en bout en utilisant vos données IoT pour l’analyse des données, le stockage et les visualisations, entre autres cas d’usage. La configuration du routage vous permet d’envoyer tous vos messages MQTT de vos clients à une rubrique d’espace de noms Event Grid ou à une rubrique personnalisée Event Grid. Une fois que les messages se trouvent dans la rubrique, vous pouvez configurer un abonnement aux événements pour consommer les messages de la rubrique. Par exemple, cette fonctionnalité vous permet d’utiliser Event Grid pour acheminer la télémétrie de vos appareils IoT vers Event Hubs, puis vers Azure Stream Analytics pour obtenir des apreçus à partir de la télémétrie de votre appareil. En savoir plus sur le routage.
Intégration du répartiteur MQTT Edge
Event Grid s’intègre à Azure IoT MQ pour créer un pont entre sa fonctionnalité de répartiteur MQTT en périphérie et la fonctionnalité de répartiteur MQTT d’Azure Event Grid dans le cloud. Azure IoT MQ est un nouveau répartiteur MQTT distribué pour le computing en périphérie, qui s’exécute sur des clusters Kubernetes avec Arc. Il peut se connecter au répartiteur MQTT Event Grid avec l’authentification Microsoft Entra ID (anciennement Azure Active Directory) à l’aide de l’identité managée affectée par le système, ce qui simplifie la gestion des informations d’identification. Azure IoT MQ fournit une haute disponibilité, une scalabilité et une sécurité pour vos appareils et applications Internet des objets. Il est désormais disponible en préversion publique dans le cadre d’Opérations Azure IoT. Découvrez-en plus sur la connexion d’Azure IoT MQ au MQTT broker d’Azure Event Grid.
Événements de cycle de vie des clients MQTT
Les événements du cycle de vie du client permettent aux applications de réagir aux événements concernant l'état de la connexion du client ou les opérations des ressources du client. Il vous permet de suivre l’état de la connexion de votre client, de réagir avec une action d’atténuation pour les déconnexions du client et de suivre l’espace de noms auquel vos clients sont attachés lors des basculements automatisés. Découvrez-en plus sur les événements du cycle de vie du client MQTT.
Noms de domaine personnalisés
La prise en charge des noms de domaine personnalisés permet aux utilisateurs d’attribuer leurs propres noms de domaine aux points d’extrémité MQTT et HTTP de l’espace de noms Event Grid, ce qui renforce la sécurité et simplifie la configuration du client. Cette fonction aide les entreprises à répondre à leurs exigences en matière de sécurité et de conformité et élimine la nécessité de modifier les clients déjà liés au domaine. L’attribution d’un nom de domaine personnalisé à plusieurs espaces de noms permet également d’améliorer la disponibilité, de gérer la capacité et de gérer la mobilité des clients d’une région à l’autre. En savoir plus sur les domaines de noms personnalisés.
Étapes suivantes
Utilisez les articles suivants pour en savoir plus sur le répartiteur MQTT et ses principaux concepts.
- Publier et s’abonner aux messages MQTT
- Tutoriel : Acheminer les messages MQTT vers Azure Event Hubs à l’aide de rubriques d’espace de noms
- Tutoriel : Acheminer des messages MQTT vers Azure Functions à l’aide de rubriques personnalisées