Qu'est-ce qu'Azure Event Grid ?

Azure Event Grid est un service d’abonnement à publication hautement évolutif et entièrement managé pour la distribution de messages. Event Grid offre des modèles de consommation de messages flexibles et utilise les protocoles MQTT (Message Queuing Telemetry Transport) et HTTP. Avec Event Grid, vous pouvez créer des pipelines de données avec des données d’appareil, intégrer des applications et générer des architectures serverless pilotées par les événements.

Les clients peuvent publier et s’abonner à des messages via les protocoles MQTT v3.1.1 et v5.0 pour prendre en charge les solutions Internet des objets (IoT). Via HTTP, vous pouvez utiliser Event Grid pour créer des solutions basées sur des événements où un service d’éditeur annonce ses modifications d’état système (événements) aux applications abonnées. Vous pouvez configurer Event Grid pour envoyer des événements aux abonnés (remise par envoi (push)), ou les abonnés peuvent se connecter à Event Grid pour lire les événements (remise par tirage (pull)). Event Grid prend en charge la Spécification CloudEvents 1.0 pour assurer l’interopérabilité entre les systèmes.

Diagramme montrant les éditeurs et les abonnés en utilisant les protocoles MQTT et HTTP.

Fonctionnalités principales d’Azure Event Grid

Event Grid a deux fonctionnalités principales :

Messagerie MQTT : les appareils et applications IoT peuvent communiquer entre eux via MQTT. Vous pouvez également utiliser Event Grid pour acheminer des messages MQTT vers des services Azure ou des points de terminaison personnalisés pour une analyse, une visualisation ou un stockage supplémentaires des données. En utilisant cette intégration aux services Azure, vous pouvez créer des pipelines de données qui commencent par l’ingestion des données de vos appareils IoT.

Distribution de données utilisant les modes de remise par envoi (push) et par tirage (pull) : à tout point d’un pipeline de données, les applications HTTP peuvent consommer des messages à l’aide d’API d’envoi (push) ou de tirage (pull). La source des données peut inclure les données des clients MQTT, mais également les sources de données suivantes qui envoient leurs événements via HTTP :

  • Services Azure
  • Vos applications personnalisées
  • Systèmes partenaires externes en tant que service logiciel (SaaS)

Le mécanisme de remise par envoi (push) d’Event Grid envoie des données vers des destinations qui incluent vos propres webhooks d’application et services Azure. Les sections suivantes décrivent chaque fonctionnalité.

Messagerie MQTT

Vos clients peuvent communiquer sur des noms de sujets MQTT personnalisés en utilisant un modèle de messagerie publie-abonnement. Event Grid prendre en charge les clients qui publient et s’abonnent à des messages via MQTT v3.1.1, MQTT v3.1.1 sur WebSocket, MQTT v5 et MQTT v5 sur WebSocket.

Event Grid prend également en charge les appareils et services qui envoient des messages MQTT via HTTPS, ce qui simplifie l’intégration avec les clients non-MQTT. Vous pouvez envoyer des messages MQTT au cloud pour l’analyse, le stockage et la visualisation des données, entre autres cas d’usage. Cette fonctionnalité est en version préliminaire.

Event Grid s’intègre à Opérations Azure IoT pour créer un pont entre sa fonctionnalité d’Agent MQTT en périphérie et la fonctionnalité d’Agent MQTT d’Event Grid dans le cloud. Azure IoT MQTT broker est un courtier MQTT distribué pour l’edge computing qui fonctionne sur des clusters Kubernetes compatibles Azure Arc, disponible dans le cadre d’Opérations Azure IoT.

La fonctionnalité Agent MQTT dans Event Grid est idéale pour les scénarios des secteurs automobile, mobilité et fabrication, entre autres. Pour savoir comment créer des solutions sécurisées et évolutives pour connecter des millions de clients MQTT au cloud à l’aide des services de messagerie et d’analytique données Azure, consultez les architectures de référence des secteurs automobile et fabrication.

Diagramme montrant la communication MQTT bidirectionnelle avec les clients éditeur et abonné.

Points forts de la prise en charge de la messagerie MQTT dans Event Grid :

  • Prise en charge de MQTT v3.1.1 et MQTT v5.0 : utilise n’importe quelle bibliothèque de client MQTT open source pour communiquer avec le service.
  • Rubriques personnalisées avec prise en charge des caractères génériques : utilise votre propre structure de rubrique.
  • Modèle de messagerie publication-abonnement : communique efficacement en utilisant les modèles de messagerie un-à-plusieurs, plusieurs-à-un et un-à-un.
  • Intégration cloud prédéfinie : achemine vos messages MQTT vers des services Azure ou des webhooks personnalisés pour traitement avancé.
  • Modèle de contrôle d’accèsflexible et affiné : regroupe les clients et les rubriques pour simplifier la gestion du contrôle d’accès. Utilise la prise en charge des variables dans les modèles de rubrique pour le contrôle d’accès affiné.
  • Méthodes d’authentification de l’agent MQTT : utilise l’Authentification par certificat X.509, une norme d’authentification du secteur pour les appareils IoT. Utilise l’Authentification Microsoft Entra ID, une norme d’authentification Azure pour les applications. Utilise des modèles d’authentification flexibles comme l’Authentification JWT (JSON Web Token) OAuth 2.0, qui est légère et sécurisée pour les clients MQTT qui ne sont pas approvisionnés dans Azure. Utilise l’Authentification webhook personnalisée, qui permet aux points de terminaison HTTP externes (webhooks) d’authentifier dynamiquement les connexions MQTT. Cette méthode utilise Microsoft Entra ID validation JWT pour garantir un accès sécurisé.
  • Prise en charge de TLS 1.2 et TLS 1.3 : sécurise vos communications client à l’aide de protocoles de chiffrement robustes.
  • Prise en charge multisession : connecte vos applications à plusieurs sessions actives pour assurer la fiabilité et la scalabilité.
  • MQTT sur WebSocket : active la connectivité pour les clients dans des environnements restreints par pare-feu.
  • Noms de domaine personnalisés : Permet d’assigner ses propres noms de domaine aux terminaux MQTT d’un espace de noms Event Grid, ce qui renforce la sécurité et simplifie la configuration des clients.
  • Événements du cycle de vie client : Prend en charge les applications qui réagissent à des événements concernant l’état de la connexion client ou les opérations de ressources client.
  • HTTP Publish : Prend en charge les appareils et services qui envoient des messages MQTT à Event Grid via HTTPS, ce qui simplifie l’intégration avec les clients non-MQTT.
  • MQTT Conserver : garantit que le dernier message connu d’une rubrique est remis automatiquement aux nouveaux abonnés, ce qui permet la synchronisation instantanée de l’état.
  • Abonnements partagés : prend en charge plusieurs clients regroupés au sein d’un même abonnement, le broker répartissant les messages entre eux pour un traitement avec équilibrage de charge et évolutif.
  • Identifiants d’abonnement : Prend en charge les clients MQTT 5 qui identifient chaque abonnement avec un identifiant numérique unique, ce qui simplifie l’identification de l’abonnement auquel correspond un message reçu lorsqu’un client gère plusieurs abonnements.

Pour plus d’informations sur l’Agent MQTT, consultez les articles suivants :

Messagerie d’événements (HTTP)

Event Grid prend en charge la remise d’événements par envoi (push) et par tirage (pull) en utilisant HTTP. Avec la livraison push, vous définissez une destination dans un abonnement à un événement, et Event Grid envoie des événements à cette destination. Avec la livraison pull, les applications abonnées se connectent à Event Grid pour consommer des événements. Event Grid prend en charge la diffusion par pull pour les sujets dans un espace de noms.

Diagramme montrant la remise par envoi (push) et la remise par tirage (pull) avec le type de ressources impliquées.

Gestionnaires d’événements

Avec la livraison push, un abonnement à un événement est une ressource de configuration générique que vous utilisez pour définir le gestionnaire d’événements ou la destination vers laquelle Event Grid envoie les événements. Par exemple, vous pouvez envoyer des données à un webhook, à une fonction Azure ou à des hubs d’événements. Pour une liste complète des gestionnaires d’événements pris en charge, voir :

Transmission de type envoi (push) par rapport à transmission de type tirage (pull)

Les instructions générales suivantes vous aident à décider quand utiliser la remise par envoi (push) ou par tirage (pull).

Livraison par extraction

  • Vous avez besoin d’un contrôle total quant au moment où recevoir des événements. Par exemple, votre application peut ne pas fonctionner tout le temps ou peut ne pas être assez stable. Vous pouvez également ne traiter des données qu’à certains moments.
  • Vous avez besoin d’un contrôle total sur la consommation des événements. Par exemple, un service ou une couche en aval dans votre application grand public peut avoir un problème qui vous empêche de traiter les événements. Dans ce cas, l’application grand public peut utiliser l’API de pull delivery pour libérer un événement déjà lu au courtier pour livraison ultérieure.
  • Vous souhaitez utiliser des liaisons privées lors de la réception d’événements, ce qui n’est possible qu’avec la remise par tirage (pull), et non avec la remise par envoi (push).
  • Vous ne pouvez pas exposer un point de terminaison et utiliser la livraison push, mais vous pouvez vous connecter à Event Grid pour consommer des événements.

Livraison push

  • Vous souhaitez éviter l’interrogation constante pour déterminer si un changement d’état système s’est produit. Au lieu de cela, vous souhaitez utiliser Event Grid pour qu’il vous envoie des événements lorsque des modifications d’état se produisent.
  • Vous disposez d’une application qui ne peut pas effectuer d’appels sortants. Par exemple, l’exfiltration des données peut préoccuper votre organisation. Toutefois, votre application peut recevoir des événements via un point de terminaison public.

Points forts du modèle HTTP :

  • Modèle de consommation d’événements flexible : consommez des événements à l’aide du mode de remise par envoi (push) ou par tirage (pull) lorsque vous utilisez HTTP.
  • Événements système : Mettre en place les événements de service Azure intégrés.
  • Vos propres événements d’application : utilisez Event Grid pour router, filtrer et livrer de manière fiable des événements personnalisés dans votre application.
  • Événements de partenaires : abonnez-vous aux événements de votre fournisseur SaaS partenaire et traitez-les sur Azure.
  • Filtrage avancé : filtrez le type d’événement ou d’autres attributs d’événement pour vous assurer que vos gestionnaires d’événements ou applications grand public reçoivent uniquement les événements pertinents.
  • Fiabilité : la remise par envoi (push) propose un mécanisme de nouvelle tentative 24 heures sur 24 avec backoff exponentiel pour assurer la remise des événements. Si vous utilisez la livraison par tirage (pull), votre application dispose d’un contrôle total sur la consommation des événements.
  • Débit élevé : générez des solutions intégrées à volume élevé avec Event Grid.
  • Noms de domaine personnalisés : Attribuez vos propres noms de domaine aux terminaux HTTP d’un espace de noms Event Grid, ce qui améliore la sécurité et simplifie la configuration des clients.

Pour plus d’informations, consultez les articles suivants :

Cas d'utilisation

Pour obtenir la liste des cas d’utilisation dans lesquels vous pouvez utiliser Azure Event Grid, consultez Cas d’utilisation.

Régions prises en charge

Les fonctionnalités du broker MQTT et des rubriques d’espace de noms sont disponibles dans les régions suivantes.

Région Région Région Région
Australie Est Australia Southeast Centre de l’Australie Centre de l’Australie 2
Brésil Sud Brésil Sud-Est Canada Centre Canada Est
Inde centrale USA Centre Asie Est USA Est
USA Est 2 USA Ouest France Centre France Sud
Allemagne Nord Allemagne Centre-Ouest Israël Central Italie Nord
Japon Est OuJapon Est Centre de la Corée Corée Sud
Mexique Centre Centre-Nord des États-Unis Europe Nord Norvège Est
Pologne Centre Afrique du Sud Ouest Afrique du Sud Nord États-Unis - partie centrale méridionale
Inde Sud Asie Sud-Est Espagne Centre Suède Centre
Suède Sud Suisse Nord Suisse Ouest Émirats arabes unis Nord
Émirats arabes unis Centre Sud du Royaume-Uni Ouest du Royaume-Uni Europe Ouest
USA Ouest 2 USA Ouest 3 Centre-USA Ouest Belgique Centre