Concepts des espaces de noms Azure Event Grid

Cet article vous présente les principaux concepts et fonctionnalités associés aux rubriques d’espace de noms.

Événements

Un événement correspond à la plus petite quantité d’informations décrivant intégralement quelque chose qui s’est produit dans le système. Nous faisons souvent référence à un événement en tant qu’événement discret, car il représente un fait distinct et autonome sur un système qui fournit un insight qui peut être actionnable. Chaque événement possède des informations communes telles que la source de l’événement, la time à laquelle l’événement a eu lieu et un identificateur unique. Chaque événement a également un type, qui est généralement un identificateur unique qui décrit le type d’annonce pour lequel l’événement est utilisé.

Par exemple, un événement concernant un fichier en cours de création dans le Stockage Azure a des informations détaillées sur le fichier, notamment la valeur lastTimeModified. Un événement Event Hubs contient l’URL du fichier capturé. Un événement concernant une nouvelle commande dans votre microservice Orders pourrait avoir un attribut orderId et un attribut URL pour la représentation de l’état de la commande. Voici quelques exemples supplémentaires de types d’événements : com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.

Voici un exemple d’événement :

{
    "specversion" : "1.0",
    "type" : "com.yourcompany.order.created",
    "source" : "/orders/account/123",
    "subject" : "O-28964",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "application/json",
    "data" : {
       "orderId" : "O-28964",
       "URL" : "https://com.yourcompany/orders/O-28964"
    }
}

Un autre type d’événement

La communauté d’utilisateurs fait également référence aux événements en tant que messages qui portent un point de données, tels qu’une lecture d’appareil unique ou un clic sur une page d’application web. Ce type d’événement est généralement analysé sur une fenêtre de temps pour dériver des insights et effectuer une action. Dans la documentation d’Event Grid, nous faisons référence à ce type d’événement comme un point de données, des données de streaming ou simplement la télémétrie. Parmi les autres types de messages, ce type d’événements est utilisé avec la fonctionnalité de répartiteur MQTT (Message Queuing Telemetry Transport) d’Event Grid.

Support pour CloudEvents

Les rubriques d’espace de noms Event Grid acceptent les événements conformes à la spécification CloudEvents 1.0 standard ouverte de la Cloud Native Computing Foundation (CNCF) à l’aide de la liaison de protocole HTTP avec le format JSON. Un CloudEvent est un type de message qui contient ce qui est communiqué, que l’on appelle données d’événement, ainsi que des métadonnées à son sujet. Les données d’événement dans les architectures pilotées par les événements portent généralement les informations annonçant une modification d’état système. Les métadonnées CloudEvents sont composées d’un ensemble d’attributs qui fournissent des informations contextuelles sur le message, comme son origine (le système source), son type, etc.

Pour découvrez plus d’informations, consultez Support pour le schéma CloudEvents.

Serveurs de publication

Un éditeur est l’application qui envoie des événements à Event Grid. Il peut s’agir de la même application d’où proviennent les événements, la source d’événement. Vous pouvez publier des événements à partir de votre propre application lorsque vous utilisez des rubriques d’espace de noms.

Sources d’événement

La source d’un événement désigne l’endroit où l’événement se produit. Chaque source d’événement prend en charge un ou plusieurs types d’événements. Par exemple, votre application est la source d’événements pour les événements personnalisés définis par votre système. Lorsque vous utilisez des rubriques d’espace de noms, les sources d’événements prises en charge sont vos propres applications.

Espaces de noms

Un espace de noms Event Grid est un conteneur de gestion pour les ressources suivantes :

Ressource Protocole pris en charge
Rubriques d’espace de noms HTTP
Espaces de rubriques MQTT
Clients MQTT
Groupes de clients MQTT
Certificats de l’autorité de certification MQTT
Liaisons d’autorisation MQTT

Avec un espace de noms Azure Event Grid, vous pouvez regrouper les ressources associées et les gérer en tant qu’unité unique dans votre abonnement Azure. Elle vous donne un nom de domaine complet (FQDN).

Un espace de noms expose deux points de terminaison :

  • Un point de terminaison HTTP pour prendre en charge les exigences générales de messagerie à l’aide de rubriques d’espace de noms.
  • Un point de terminaison MQTT pour la messagerie IoT ou des solutions qui utilisent MQTT.

Un espace de noms fournit également des points de terminaison réseau intégrés DNS. Il fournit aussi une gamme de fonctionnalités de contrôle d’accès et de gestion de l’intégration réseau, telles que le filtrage d’entrée IP publique et les liaisons privées. Il s’agit également du conteneur d’identités managées utilisé pour les ressources contenues dans l’espace de noms.

Voici quelques points supplémentaires sur les espaces de noms :

  • L’espace de noms est une ressource suivie avec des propriétés tags et location. Une fois créée, elle se trouve dans resources.azure.com.
  • Le nom de l’espace de noms peut être compris entre 3 et 50 caractères. Il peut inclure des caractères alphanumériques, un trait d’union(-), et aucun espace.
  • Le nom doit être unique pour chaque région.

Unités de débit

Les unités de débit (TU) définissent la capacité de débit d’entrée et de sortie dans les espaces de noms. Si vous souhaitez obtenir plus d’informations, consultez Quotas et limites Azure Event Grid.

Rubriques

Une rubrique contient les événements qui ont été publiés sur Event Grid. Vous utilisez généralement une ressource de rubrique pour une collection d’événements associés. Nous avons souvent fait référence à des rubriques à l’intérieur d’un espace de noms en tant que rubriques d’espace de noms.

Rubriques d’espace de noms

Les rubriques d’espace de noms sont des rubriques créées dans un espace de noms Event Grid. Votre application publie des événements sur un point de terminaison d’espace de noms HTTP spécifiant une rubrique d’espace de noms dans laquelle les événements publiés sont contenus logiquement. Lorsque vous concevez votre application, vous pouvez choisir le nombre de rubriques à créer. Pour les solutions volumineuses, créez une un espace de noms pour chaque catégorie d’événements associés. Par exemple, considérez une application qui gère les comptes d’utilisateur et une autre application sur les commandes des clients. Il est peu probable que tous les abonnés aux événements souhaitent des événements des deux applications. Pour séparer les problèmes, créez deux rubriques d’espace de noms : une pour chaque application. Laissez les consommateurs d’événements s’abonner à la rubrique en fonction de leurs besoins. Pour les solutions de petite taille, vous pouvez à la place envoyer tous les événements à une seule rubrique.

Les rubriques d’espace de noms prennent en charge la remise pull et la remise push. Consultez quand utiliser la livraison pull ou push pour vous aider à déterminer si la livraison pull est la bonne approche en fonction de vos besoins.

Abonnements à des événements

Un abonnement aux événements est une ressource de configuration associée à une seule rubrique. Entre autres, vous utilisez un abonnement aux événements pour définir des critères de sélection d’événements afin de définir la collection d’événements disponible pour un abonné sur l’ensemble total d’événements disponibles dans une rubrique. Vous pouvez filtrer des événements en fonction des exigences de l’abonné. Par exemple, vous pouvez filtrer des événements par leur type d’événement. Vous pouvez également définir des critères de filtre sur des propriétés de données d’événement, si vous utilisez un objet JSON comme valeur pour la propriété données. Pour plus d’informations sur les propriétés des ressources, recherchez les opérations de plan de contrôle dans l’API REST Event Grid.

Diagramme montrant une rubrique et abonnements aux événements associés.

Pour obtenir un exemple de création d’abonnements pour les rubriques d’espace de noms, consultez Publier et consommer des messages à l’aide de rubriques d’espace de noms à l’aide de l’interface CLI.

Remarque

Les abonnements aux événements sous une rubrique d’espace de noms présentent un modèle de ressource simplifié par rapport à celui utilisé pour des rubriques personnalisées, de domaine, de partenaire et système (Event Grid de base). Si vous souhaitez obtenir plus d’informations, consultez Créer, afficher et gérer des abonnements à des événements.

Livraison par extraction

Avec la remise pull, votre application se connecte à Event Grid pour lire les messages à l’aide de la sémantique de type file d’attente. Lorsque les applications se connectent à Event Grid pour consommer des événements, elles contrôlent le taux de consommation des événements et son minutage. Les applications grand public peuvent également utiliser des points de terminaison privés lors de la connexion à Event Grid pour lire des événements à l’aide de l’espace IP privé.

La remise pull prend en charge les opérations suivantes pour lire les messages et contrôler l’état des messages : recevoir, accuser réception, publier, rejeteret renouveler le verrou. Pour en savoir plus, consultez la vue d’ensemble de la remise pull.

Forme des données lors de la réception d’événements à l’aide de la remise pull

Lors de la remise d’événements à l’aide de la remise pull, Event Grid inclut un tableau d’objets qui, à son tour, inclut les objets event et brokerProperties. La valeur de la propriété event est le CloudEvent remis en mode de contenu structuré. L’objet brokerProperties contient le jeton de verrouillage associé au CloudEvent remis. L’objet json suivant est un exemple de réponse d’une opération recevoir qui retourne deux événements :

{
    "value": [
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
                "deliveryCount": 2
            },
            "event": {
                "specversion": "1.0",
                "id": "A234-1234-1235",
                "source": "/mycontext",
                "time": "2018-04-05T17:31:00Z",
                "type": "com.example.someeventtype",
                "data": "some data"
            }
        },
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
                "deliveryCount": 1
            },
            "event": {
                "specversion": "1.0",
                "id": "B688-1234-1235",
                "source": "/mycontext",
                "type": "com.example.someeventtype",
                "time": "2018-04-05T17:31:00Z",
                "data": {
                    "somekey" : "value",
                    "someOtherKey" : 9
                }
            }
        }
    ]
}

Livraison push

Avec la remise push, Event Grid envoie des événements à une destination configurée dans un abonnement à des événements (de mode de remise) push. Il fournit une logique de nouvelle tentative robuste si la destination n’est pas en mesure de recevoir des événements.

Important

La remise push des espaces de noms Event Grid prend actuellement en charge Azure Event Hubs en tant que destination. À l’avenir, les espaces de noms Event Grid prendront en charge davantage de destinations, y compris toutes les destinations prises en charge par Event Grid De base.

Remise d’événements Event Hubs

Event Grid utilise le Kit de développement logiciel (SDK) Event Hubs pour envoyer des événements à Event Hubs en utilisant AMQP. Les événements sont envoyés en tant que tableau d’octets, où chaque élément du tableau contient un CloudEvent.

Livraison push-and-pull

Event Grid prend en charge la remise d’événements push et pull à l’aide de HTTP. Avec la remise push, vous définissez une destination dans un abonnement aux événements, un webhook ou un service Azure, auxquels Event Grid envoie des événements. Avec la livraison pull, les applications abonnées se connectent à Event Grid pour consommer des événements. La remise pull est prise en charge pour les rubriques d’un espace de noms Event Grid.

Important

Event Hubs est pris en charge en tant que destination pour les abonnements aux rubriques d’espace de noms. Dans les prochaines versions, les espaces de noms Event Grid prendront en charge toutes les destinations actuellement disponibles dans Event Grid de base, ainsi que d’autres destinations.

Diagramme de haut niveau montrant la livraison push-and-pull avec le type de ressources impliquées.

Quand utiliser la livraison push vs la livraison pull

Voici des instructions générales pour vous aider à décider quand utiliser la livraison par extraction ou par envoi.

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, elle peut ne pas être assez stable ou bien vous traitez des données à 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 présente un problème qui vous empêche de traiter les événements. Dans ce cas, l’API de livraison pull permet à l’application grand public de libérer un événement déjà lu sur le répartiteur afin qu’il puisse être livré ultérieurement.
  • Vous souhaitez utiliser des liaisons privées lors de la réception d’événements, ce qui n’est possible qu’avec la remise pull, et non avec la remise push.
  • Vous n’avez pas la possibilité d’exposer un point de terminaison et d’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. Vous utilisez plutôt Event Grid pour vous envoyer des événements au moment où les changements 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.

Étapes suivantes