Gebeurtenisdomeinen begrijpen voor het beheren van Event Grid-onderwerpen

Een gebeurtenisdomein is een beheerprogramma voor een groot aantal Event Grid-onderwerpen met betrekking tot dezelfde toepassing. U kunt het beschouwen als een meta-onderwerp dat duizenden afzonderlijke onderwerpen kan bevatten. Het biedt één publicatie-eindpunt voor alle onderwerpen in het domein. Bij het publiceren van een gebeurtenis moet de uitgever het doelonderwerp opgeven in het domein waarnaar deze wil publiceren. De uitgever kan een matrix of een batch gebeurtenissen verzenden waarbij gebeurtenissen naar verschillende onderwerpen in het domein worden verzonden. Zie de sectie Publicerende gebeurtenissen naar een gebeurtenisdomein voor meer informatie.

Domeinen bieden u ook verificatie- en autorisatiebeheer voor elk onderwerp, zodat u uw tenants kunt partitioneren. In dit artikel wordt beschreven hoe u gebeurtenisdomeinen gebruikt om de stroom van aangepaste gebeurtenissen te beheren voor uw verschillende zakelijke organisaties, klanten of toepassingen. Gebeurtenisdomeinen gebruiken om het volgende te doen:

  • Beheer multitenant gebeurtenisarchitecturen op schaal.
  • Beheer uw verificatie en autorisatie.
  • Partitioneer uw onderwerpen zonder dat u ze afzonderlijk hoeft te beheren.
  • Vermijd afzonderlijk publiceren naar elk van uw onderwerpeindpunten.

Notitie

Gebeurtenisdomein is niet bedoeld ter ondersteuning van een broadcastscenario waarbij een gebeurtenis naar een domein wordt verzonden en elk onderwerp in het domein een kopie van de gebeurtenis ontvangt. Bij het publiceren van gebeurtenissen moet de uitgever het doelonderwerp opgeven in het domein waarnaar het wil publiceren. Als de uitgever dezelfde nettolading voor gebeurtenissen naar meerdere onderwerpen in het domein wil publiceren, moet de uitgever de nettolading van de gebeurtenis dupliceren en de onderwerpnaam wijzigen en deze publiceren naar Event Grid met behulp van het domeineindpunt, afzonderlijk of als batch.

Voorbeeld van een toepassing

Gebeurtenisdomeinen worden het eenvoudigst uitgelegd met behulp van een voorbeeld. Stel dat u Contoso Construction Machinery uitvoert, waar u tractoren produceert, apparatuur graven en andere zware machines. Als onderdeel van het uitvoeren van het bedrijf pusht u realtime informatie naar klanten over apparatuuronderhoud, systeemstatus en contractupdates. Al deze informatie gaat naar verschillende eindpunten, waaronder uw app, klanteindpunten en andere infrastructuur die klanten hebben ingesteld.

Met gebeurtenisdomeinen kunt u Contoso Construction Machinery modelleren als één gebeurtenisentiteit. Elk van uw klanten wordt weergegeven als een onderwerp binnen het domein. Verificatie en autorisatie worden verwerkt met behulp van Microsoft Entra-id. Elk van uw klanten kan zich abonneren op hun onderwerp en hun gebeurtenissen aan hen laten leveren. Beheerde toegang via het gebeurtenisdomein zorgt ervoor dat ze alleen toegang hebben tot hun onderwerp.

Het biedt u ook één eindpunt, waarnaar u al uw klantgebeurtenissen kunt publiceren. Event Grid zorgt ervoor dat elk onderwerp alleen op de hoogte is van gebeurtenissen binnen het bereik van de tenant.

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

Toegangsbeheer

Met een domein krijgt u gedetailleerde autorisatie en verificatiebeheer voor elk onderwerp via op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC). U kunt deze rollen gebruiken om elke tenant in uw toepassing te beperken tot alleen de onderwerpen waarvoor u ze toegang wilt verlenen. Azure RBAC in gebeurtenisdomeinen werkt op dezelfde manier als beheerd toegangsbeheer in de rest van Event Grid en Azure. Gebruik Azure RBAC om aangepaste roldefinities in gebeurtenisdomeinen te maken en af te dwingen.

Ingebouwde rollen

Event Grid heeft twee ingebouwde roldefinities om Azure RBAC eenvoudiger te maken voor het werken met gebeurtenisdomeinen. Deze rollen zijn EventGrid EventSubscription Contributor en EventGrid EventSubscription Reader. U wijst deze rollen toe aan gebruikers die zich moeten abonneren op onderwerpen in uw gebeurtenisdomein. U beperkt de roltoewijzing tot alleen het onderwerp waarop gebruikers zich moeten abonneren. Zie Ingebouwde rollen voor Event Grid voor informatie over deze rollen.

Abonneren op onderwerpen

Abonneren op gebeurtenissen voor een onderwerp binnen een gebeurtenisdomein is hetzelfde als het maken van een gebeurtenisabonnement op een aangepast onderwerp of het abonneren op een gebeurtenis vanuit een Azure-service.

Belangrijk

Domeinonderwerp wordt beschouwd als een automatisch beheerde resource in Event Grid. U kunt een gebeurtenisabonnement maken op het domeinbereik zonder het domeinonderwerp te maken. In dit geval maakt Event Grid automatisch namens u het domeinonderwerp. U kunt er natuurlijk nog steeds voor kiezen om het domeinonderwerp handmatig te maken. Met dit gedrag kunt u zich zorgen maken over één minder resource wanneer u te maken hebt met een groot aantal domeinonderwerpen. Wanneer het laatste abonnement op een domeinonderwerp wordt verwijderd, wordt het domeinonderwerp ook verwijderd, ongeacht of het domeinonderwerp handmatig is gemaakt of automatisch is gemaakt.

Domeinbereikabonnementen

Gebeurtenisdomeinen bieden ook ondersteuning voor abonnementen binnen het domeinbereik. Een gebeurtenisabonnement op een gebeurtenisdomein ontvangt alle gebeurtenissen die naar het domein worden verzonden, ongeacht het onderwerp waarnaar de gebeurtenissen worden verzonden. Domeinbereikabonnementen kunnen nuttig zijn voor beheer- en controledoeleinden.

Publiceren naar een gebeurtenisdomein

Wanneer u een gebeurtenisdomein maakt, krijgt u een publicatie-eindpunt dat vergelijkbaar is met als u een onderwerp in Event Grid hebt gemaakt. Als u gebeurtenissen wilt publiceren naar een onderwerp in een gebeurtenisdomein, pusht u de gebeurtenissen naar het eindpunt van het domein op dezelfde manier als voor een aangepast onderwerp. Het enige verschil is dat u het onderwerp opgeeft waaraan u de gebeurtenis wilt laten bezorgen. Als u bijvoorbeeld de volgende matrix met gebeurtenissen publiceert, wordt een gebeurtenis verzonden "id": "1111" naar het onderwerp foo terwijl de gebeurtenis wordt "id": "2222" verzonden naar het onderwerp bar.

Wanneer u het gebeurtenisschema van de cloud gebruikt, geeft u de naam van het Event Grid-onderwerp in het domein op als een waarde voor de source eigenschap. In het volgende voorbeeld source wordt de eigenschap ingesteld op foo de eerste gebeurtenis en bar op voor de tweede gebeurtenis.

Als u een ander veld wilt gebruiken om het beoogde onderwerp in het domein op te geven, geeft u de toewijzing van het invoerschema op bij het maken van het domein. Als u bijvoorbeeld de REST API gebruikt, gebruikt u de eigenschap properties.inputSchemaMapping wanneer u dat veld wilt toewijzen aan properties.topic. Als u de .NET SDK gebruikt, gebruikt u EventGridJsonInputSchemaMapping. Andere SDK's ondersteunen ook de schematoewijzing.

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

Gebeurtenisdomeinen verwerken publicatie naar onderwerpen voor u. In plaats van gebeurtenissen te publiceren naar elk onderwerp dat u afzonderlijk beheert, kunt u al uw gebeurtenissen publiceren naar het eindpunt van het domein. Event Grid zorgt ervoor dat elke gebeurtenis naar het juiste onderwerp wordt verzonden.

Prijzen

Gebeurtenisdomeinen gebruiken dezelfde bewerkingsprijzen die alle andere functies in Event Grid gebruiken. Bewerkingen werken hetzelfde in gebeurtenisdomeinen als in aangepaste onderwerpen. Elke ingang van een gebeurtenis naar een gebeurtenisdomein is een bewerking en elke bezorgingspoging voor een gebeurtenis is een bewerking.

Volgende stappen

Zie Gebeurtenisdomeinen beheren voor meer informatie over het instellen van gebeurtenisdomeinen, het maken van onderwerpen, het maken van gebeurtenisabonnementen en het publiceren van gebeurtenissen.