Grundlegendes zu Ereignisdomänen für die Verwaltung von Event Grid-Themen

Eine Ereignisdomäne ist ein Verwaltungstool für eine große Anzahl von Event Grid-Themen, die sich auf dieselbe Anwendung beziehen. Sie können sie sich als ein Metathema vorstellen, das Tausende von Einzelthemen aufweisen kann. Sie stellt einen Veröffentlichungsendpunkt für alle Themen in der Domäne bereit. Beim Veröffentlichen eines Ereignisses muss der Herausgeber das Zielthema in der Domäne angeben, in der es veröffentlicht werden soll. Der Herausgeber kann ein Array oder einen Batch von Ereignissen senden, bei denen Ereignisse an verschiedene Themen in der Domäne gesendet werden. Ausführliche Informationen finden Sie im Abschnitt Veröffentlichen von Ereignissen für eine Ereignisdomäne .

Domänen geben Ihnen auch die Authentifizierungs- und Autorisierungskontrolle über jedes Thema, damit Sie Ihre Mandanten partitionieren können. Dieser Artikel beschreibt, wie Sie Ereignisdomänen verwenden, um den Fluss benutzerdefinierter Ereignisse für Ihre verschiedenen Geschäftsorganisationen, Kunden oder Anwendungen zu verwalten. Verwenden Sie Ereignisdomänen für die folgenden Aufgaben:

  • Verwalten mehrinstanzenfähiger Ereignisarchitekturen nach Maß.
  • Verwalten der Authentifizierung und Autorisierung.
  • Partitionieren von Themen, ohne diese einzeln zu verwalten.
  • Vermeiden der individuellen Veröffentlichung für jeden einzelnen Themaendpunkt.

Hinweis

Die Ereignisdomäne soll kein Übertragungsszenario unterstützen, in dem ein Ereignis an eine Domäne gesendet wird und jedes Thema in der Domäne eine Kopie des Ereignisses empfängt. Wenn Veröffentlichungsereignisse veröffentlicht werden, muss der Herausgeber das Zielthema in der Domäne angeben, für die er veröffentlichen möchte. Wenn der Verleger dieselbe Ereignisnutzlast in mehreren Themen in der Domäne veröffentlichen möchte, muss der Herausgeber die Ereignisnutzlast duplizieren und den Themennamen ändern und sie mithilfe des Domänenendpunkts entweder einzeln oder als Batch im Ereignisraster veröffentlichen.

Beispiel eines Anwendungsfalls

Ereignisdomänen lassen sich am einfachsten an einem Beispiel veranschaulichen. Angenommen, Sie betreiben Contoso Construction Machinery, ein Unternehmen, das Traktoren, Bagger und anderes schweres Gerät herstellt. Als Teil des Geschäftsbetriebs übermitteln Sie Echtzeitinformationen zur Ausrüstungswartung, zur Systemintegrität und zu Vertragsaktualisierungen an Kunden. Alle diese Informationen werden an verschiedene Endpunkte weitergeleitet (z.B. an Ihre App, an Kundenendpunkte und andere Infrastrukturen, die Kunden eingerichtet haben).

Ereignisdomänen ermöglichen es Ihnen, Contoso Construction Machinery als eine einzige Ereigniseinheit zu modellieren. Jeder Ihrer Kunden wird als ein Thema in der Domäne dargestellt. Authentifizierung und Autorisierung werden mithilfe von Microsoft Entra ID verarbeitet. Jeder Ihrer Kunden kann sein Thema abonnieren und sich seine Ereignisse zustellen lassen. Verwalteter Zugriff über die Ereignisdomäne stellt sicher, dass die Kunden nur auf ihr jeweiliges Thema zugreifen können.

Außerdem erhalten Sie einen einzigen Endpunkt, in dem Sie alle Ihre Kundenereignisse veröffentlichen können. Event Grid sorgt dafür, dass jedes Thema nur die Ereignisse kennt, die sich auf den Mandanten beziehen.

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

Zugriffsverwaltung

Mit einer Domäne erhalten Sie über die rollenbasierte Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC) differenzierte Autorisierungs- und Authentifizierungskontrolle über jedes Thema. Mit diesen Rollen können Sie jeden Mandanten in Ihrer Anwendung auf die Themen beschränken, auf die Sie ihm Zugriff gewähren möchten. Azure RBAC in Ereignisdomänen funktioniert auf dieselbe Weise wie die verwaltete Zugriffssteuerung im Rest von Event Grid und Azure. Verwenden Sie Azure RBAC, um benutzerdefinierte Rollendefinitionen in Ereignisdomänen zu erstellen und zu erzwingen.

Integrierte Rollen

Event Grid verfügt über zwei integrierte Rollendefinitionen, um die Nutzung von Azure RBAC in Ereignisdomänen zu vereinfachen. Diese Rollen sind EventGrid EventSubscription-Mitwirkender und EventGrid EventSubscription-Leser . Sie können diese Rollen zu Benutzern zuweisen, die Themen in der Ereignisdomäne abonnieren müssen. Sie können die Rollenzuweisung auf das Thema beschränken, das Benutzer abonnieren müssen. Weitere Informationen zu diesen Rollen finden Sie unter Integrierte Rollen für Event Grid.

Abonnieren von Themen

Das Abonnieren von Ereignissen für ein Thema innerhalb einer Ereignisdomäne ist identisch mit dem Erstellen eines Ereignisabonnements für ein benutzerdefiniertes Thema oder dem Abonnieren eines Ereignisses von einem Azure-Dienst.

Wichtig

Das Domänenthema wird in Event Grid als automatisch verwaltete Ressource betrachtet. Sie können ein Ereignisabonnement im Domänenbereich erstellen, ohne das Domänenthema zu erstellen. In diesem Fall erstellt Event Grid automatisch das Domänenthema in Ihrem Namen. Natürlich können Sie das Domänenthema auch manuell erstellen. Dieses Verhalten ermöglicht es Ihnen, sich um eine Ressource weniger zu kümmern, wenn Sie mit einer großen Anzahl von Domänenthemen arbeiten. Wenn das letzte Abonnement eines Domänenthemas gelöscht wird, wird das Domänenthema auch gelöscht, und zwar unabhängig davon, ob das Domänenthema manuell oder automatisch erstellt wurde.

Domänenbereichabonnements

Ereignisdomänen ermöglichen außerdem Domänenbereichabonnements. Ein Ereignisabonnement für eine Ereignisdomäne empfängt alle an die Domäne gesendeten Ereignisse, unabhängig davon, an welches Thema die Ereignisse gesendet werden. Domänenbereichabonnements können für Verwaltungs- und Überwachungszwecke nützlich sein.

Veröffentlichen für eine Ereignisdomäne

Wenn Sie eine Ereignisdomäne erstellen, erhalten Sie einen Veröffentlichungsendpunkt, ähnlich wie beim Erstellen eines Themas in Event Grid. Um Ereignisse für ein beliebiges Thema in einer Ereignisdomäne zu veröffentlichen, übertragen Sie die Ereignisse auf die gleiche Weise wie bei einem benutzerdefinierten Thema an den Endpunkt der Domäne pushen. Der einzige Unterschied besteht darin, dass Sie das Thema angeben müssen, an das das Ereignis übermittelt werden soll. Beispielsweise würde die Veröffentlichung des folgenden Arrays von Ereignissen das Ereignis mit "id": "1111" an das Thema foo senden, während das Ereignis mit "id": "2222" an das Thema bar gesendet würde.

Geben Sie bei Verwendung des Cloud Event-Schemasden Namen des Event Grid-Themas in der Domäne als Wert für die Eigenschaft source an. Im folgenden Beispiel wird die Eigenschaft source für das erste Ereignis auf bar und das zweite Ereignis auf foo festgelegt.

Wenn Sie ein anderes Feld verwenden möchten, um das beabsichtigte Thema in der Domäne anzugeben, geben Sie die Eingabeschemazuordnung beim Erstellen der Domäne an. Wenn Sie beispielsweise die REST-API verwenden, verwenden Sie die Eigenschaft properties.inputSchemaMapping, wenn sie dieses Feld properties.topic zuordnen möchten. Wenn Sie das .NET SDK verwenden, verwenden Sie EventGridJsonInputSchemaMapping. Andere SDKs unterstützen auch die Schemazuordnung.

[{
  "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"
}]

Ereignisdomänen übernehmen die Veröffentlichung von Themen für Sie. Anstatt Ereignisse für jedes Thema, das Sie verwalten, einzeln zu veröffentlichen, können Sie alle Ihre Ereignisse im Endpunkt der Domäne veröffentlichen. Event Grid stellt sicher, dass jedes Ereignis an das richtige Thema gesendet wird.

Preisberechnung

Für Ereignisdomänen gelten die gleichen Betriebspreise wie für alle anderen Features in Event Grid. Vorgänge funktionieren in Ereignisdomänen wie in benutzerdefinierten Themen. Jede Erfassung eines Ereignisses in einer Ereignisdomäne ist ein Vorgang, und jeder Zustellungsversuch für ein Ereignis ist ein Vorgang.

Nächste Schritte

Weitere Informationen zum Einrichten von Ereignisdomänen, zum Erstellen von Themen, zum Erstellen von Ereignisabonnements und zum Veröffentlichen von Ereignissen finden Sie unter Verwalten von Ereignisdomänen.