Comprendre les domaines d’événements pour gérer les rubriques Event Grid

Un domaine d’événements est un outil de gestion pour un nombre élevé de rubriques Event Grid relatives à la même application. Vous pouvez le considérer comme une méta-rubrique pouvant compter des milliers de rubriques individuelles. Il fournit un point de terminaison de publication pour tous les sujets du domaine. Lors de la publication d'un événement, l'éditeur doit préciser le sujet cible dans le domaine sur lequel il souhaite publier. L'éditeur peut envoyer un tableau ou un lot d'événements dans lesquels les événements sont envoyés à différents sujets du domaine. Consultez la section Publication d’événements sur un domaine d’événements pour plus de détails.

Les domaines vous donnent également le contrôle sur l’authentification et l’autorisation sur chaque rubrique pour que vous puissiez partitionner vos locataires. Cet article décrit comment utiliser les domaines d’événements pour gérer le flux d’événements personnalisés vers vos organisations, clients ou applications. Utilisez des domaines d’événements pour effectuer les opérations suivantes :

  • Gérer des architectures d’événements à grande échelle avec abonnés multiples.
  • Gérer les authentifications et les autorisations.
  • Partitionner les sujets sans avoir à les gérer de façon individuelle.
  • Éviter de publier les sujets un par un dans chaque point de terminaison.

Remarque

Le domaine d'événement n'est pas destiné à prendre en charge le scénario de diffusion dans lequel un événement est envoyé à un domaine et chaque sujet du domaine reçoit une copie de l'événement. Lors de la publication d'événements, l'éditeur doit spécifier le sujet cible dans le domaine sur lequel il souhaite publier. Si l'éditeur souhaite publier la même charge utile d'événement sur plusieurs sujets du domaine, il doit dupliquer la charge utile de l'événement, modifier le nom de la rubrique, puis les publier sur Event Grid à l'aide du point de terminaison du domaine, soit individuellement, soit par lots.

Exemple de cas d’usage

Il est plus simple de partir d’un exemple pour expliquer les domaines d’événements. Supposez que votre société, Contoso Construction Machinery, produit des tracteurs, du matériel d’excavation et autres machineries lourdes. Dans le cadre de la gestion de votre entreprise, vous envoyez des informations en temps réel à vos clients sur la maintenance des machines, l’état des systèmes et les mises à jour de vos contrats. Tout ceci est envoyé vers différents points de terminaison, dont votre application, des points de terminaison côté client ou toute autre infrastructure que des clients ont mise en place.

Les domaines d’événements vous permettent de modéliser Contoso Construction Machinery en une unique entité source d’événements. Chacun de vos clients est représenté en tant que rubrique au sein du domaine. L'authentification et l'autorisation sont gérées à l'aide de Microsoft Entra ID. Chacun de vos clients peut s’abonner à sa rubrique et recevoir ses événements. L’accès géré via le domaine d’événements garantit qu’ils n’ont accès qu’à leur rubrique.

Il vous donne également un point de terminaison unique, dans lequel vous pouvez publier l’ensemble des événements du client. Event Grid veille à ce que chaque rubrique prenne uniquement en compte les événements qui concernent son abonné.

Image showing an example use case for using Event Grid domains.

Gestion de l’accès

Avec un domaine, vous bénéficiez du contrôle détaillé des autorisations et de l’authentification sur chaque rubrique via le contrôle d’accès en fonction du rôle Azure (Azure RBAC). Vous pouvez vous servir de ces rôles pour limiter l’accès de chaque abonné dans votre application aux rubriques que souhaitez uniquement. Azure RBAC dans les domaines d’événements fonctionne de la même façon que le contrôle d’accès géré dans le reste d’Event Grid et d’Azure. Utilisez Azure RBAC pour créer et appliquer des définitions de rôles personnalisés dans des domaines d’événements.

Vérification d’accès par rôle : rôles intégrés

Event Grid possède deux définitions de rôles intégrées pour faciliter l’utilisation d’Azure RBAC avec des domaines d’événements. Ces rôles sont EventGrid EventSubscription Contributor et EventGrid EventSubscription Reader. Vous affectez ces rôles aux utilisateurs qui doivent s’abonner à des rubriques dans votre domaine d’événements. Vous étendez l’attribution de rôle uniquement à la rubrique à laquelle les utilisateurs doivent s’abonner. Pour plus d’informations sur ces rôles, voir Rôles intégrés pour Event Grid.

S’abonner aux rubriques

S’abonner aux événements d’une rubrique dans un domaine d’événements est équivalent à créer un abonnement à un événement dans une rubrique personnalisée ou à s’abonner à un événement d’un service Azure.

Important

La rubrique de domaine est considérée comme une ressource managée automatiquement dans Event Grid. Vous pouvez créer un abonnement aux événements au niveau de l’étendue de domaine sans créer la rubrique de domaine. Dans ce cas, Event Grid crée automatiquement la rubrique de domaine en votre nom. Bien entendu, vous pouvez toujours choisir de créer la rubrique de domaine manuellement. Ce comportement vous permet de vous préoccuper d’une ressource en moins lorsque vous travaillez avec un grand nombre de rubriques de domaine. Lorsque le dernier abonnement à une rubrique de domaine est supprimé, la rubrique domaine est également supprimée, peu importe qu’elle ait été créée manuellement ou automatiquement.

Abonnements à l’étendue de domaine

Les domaines d’événements permettent également des abonnements à l’étendue de domaine. Une souscription à des événements sur un domaine d'événements reçoit tous les événements envoyés au domaine, quel que soit le sujet auquel les événements sont envoyés. Les abonnements à l’étendue de domaine peuvent être utiles à des fins de gestion et d’audit.

Publier dans un domaine d’événements

Lorsque vous créez un domaine d’événements, vous recevez un point de terminaison de publication identique à celui que vous auriez reçu si vous aviez créé une rubrique dans Event Grid. Pour publier des événements dans une rubrique d’un domaine d’événements, envoyez-les au point de terminaison du domaine de la même manière que vous le feriez pour une rubrique personnalisée. La seule différence est que vous devez spécifier la rubrique dans laquelle vous souhaitez envoyer l’événement. Par exemple, la publication du tableau d'événements suivant enverrait l'événement avec "id": "1111" au topic foo tandis que l'événement avec "id": "2222" serait envoyé au topic bar.

Lorsque vous utilisez le schéma d'événements cloud, spécifiez le nom du sujet Event Grid dans le domaine comme valeur pour la propriété source. Dans l'exemple suivant, la propriété source est définie sur foo pour le premier événement et sur bar pour le deuxième événement.

Si vous souhaitez utiliser un champ différent pour spécifier le sujet souhaité dans le domaine, spécifiez le mappage de schéma d'entrée lors de la création du domaine. Par exemple, si vous utilisez l'API REST, utilisez la propriété Properties.inputSchemaMapping pour mapper ce champ à properties.topic. Si vous utilisez le SDK .NET, utilisez EventGridJsonInputSchemaMapping. D'autres SDK prennent également en charge le mappage de schéma.

[{
  "source": "foo",
  "id": "1111",
  "type": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "time": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
	"specversion": "1.0"
},
{
  "source": "bar",
  "id": "2222",
  "type": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "time": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
	"specversion": "1.0"
}]

Les domaines d’événements gèrent la publication des rubriques à votre place. Au lieu de publier vos événements un par un dans chaque rubrique que vous gérez, vous pouvez les publier tous dans le point de terminaison du domaine. Event Grid s’assure que chaque événement est envoyé à la rubrique appropriée.

Tarification

Les domaines d’événements utilisent la même tarification des opérations que toutes les autres fonctionnalités dans Event Grid. Les opérations fonctionnent de la même manière dans des domaines d’événements que dans des rubriques personnalisées. Chaque entrée d’un événement dans un domaine d’événements est une opération, tout comme chaque tentative de livraison d’un événement.

Étapes suivantes

Pour découvrir comment configurer des domaines d’événements, créer des rubriques, créer des abonnements à des événements et publier des événements, voir Gérer les domaines d’événements.