Vysvětlení domén událostí pro správu témat event Gridu

Doména událostí je nástroj pro správu pro velký počet témat Event Gridu souvisejících se stejnou aplikací. Můžete si ho představit jako metatem, které může obsahovat tisíce jednotlivých témat. Poskytuje jeden koncový bod publikování pro všechna témata v doméně. Při publikování události musí vydavatel zadat cílové téma v doméně, do které chce publikovat. Vydavatel může odeslat pole nebo dávku událostí, ve kterých se události odesílají do různých témat v doméně. Podrobnosti najdete v části Publikování událostí do domény události.

Domény také poskytují kontrolu nad ověřováním a autorizací pro každé téma, abyste mohli rozdělit tenanty. Tento článek popisuje, jak pomocí domén událostí spravovat tok vlastních událostí do různých obchodních organizací, zákazníků nebo aplikací. Použití domén událostí k:

  • Správa víceklientských architektur událostí ve velkém měřítku
  • Spravujte ověřování a autorizaci.
  • Rozdělte témata bez nutnosti spravovat jednotlivá témata.
  • Vyhněte se individuálnímu publikování do jednotlivých koncových bodů tématu.

Poznámka:

Doména událostí není určená k podpoře scénáře vysílání, kdy se událost odesílá do domény a každé téma v doméně přijímá kopii události. Při publikování událostí musí vydavatel zadat cílové téma v doméně, do které chce publikovat. Pokud chce vydavatel publikovat stejnou datovou část události do více témat v doméně, musí duplikovat datovou část události a změnit název tématu a publikovat je do Event Gridu pomocí koncového bodu domény, a to jednotlivě nebo jako dávka.

Příklad případu použití

Domény událostí se nejsnážněji vysvětlují pomocí příkladu. Řekněme, že provozujete společnost Contoso Construction Machinery, kde vyrábíte traktory, kopání vybavení a další těžké stroje. V rámci provozování firmy dáte zákazníkům informace v reálném čase o údržbě zařízení, stavu systémů a aktualizacích smluv. Všechny tyto informace se přejdou do různých koncových bodů, včetně vaší aplikace, koncových bodů zákazníků a další infrastruktury, kterou si zákazníci nastavili.

Domény událostí umožňují modelovat Contoso Construction Machinery jako jednu entitu událostí. Každý z vašich zákazníků je reprezentován jako téma v rámci domény. Ověřování a autorizace se zpracovávají pomocí ID Microsoft Entra. Každý z vašich zákazníků se může přihlásit k odběru svého tématu a doručovat jim události. Spravovaný přístup prostřednictvím domény událostí zajistí, že bude mít přístup jenom ke svému tématu.

Poskytuje také jeden koncový bod, do kterého můžete publikovat všechny události zákazníka. Event Grid se postará o to, aby každé téma vědělo pouze o událostech vymezených pro svého tenanta.

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

Správa přístupu

S doménou získáte přes Azure řízení přístupu na základě role (Azure RBAC) jemně odstupňovanou autorizaci a kontrolu ověřování nad každým tématem. Tyto role můžete použít k omezení jednotlivých tenantů v aplikaci jenom na témata, ke které jim chcete udělit přístup. Azure RBAC v doménách událostí funguje stejně jako spravované řízení přístupu ve zbytku služby Event Grid a Azure. Pomocí Azure RBAC můžete vytvářet a vynucovat vlastní definice rolí v doménách událostí.

Předdefinované role

Event Grid má dvě předdefinované definice rolí, které usnadňují práci s doménami událostí v Azure RBAC. Tyto role jsou Přispěvatel EventSubscription EventGrid a Čtenář EventGrid EventSubscription. Tyto role přiřadíte uživatelům, kteří se potřebují přihlásit k odběru témat ve vaší doméně událostí. Přiřazení role můžete vymezit jenom na téma, ke kterému se uživatelé potřebují přihlásit k odběru. Informace o těchto rolích najdete v tématu Předdefinované role pro Event Grid.

Přihlášení k odběru témat

Přihlášení k odběru událostí pro téma v rámci domény události je stejné jako vytvoření odběru událostí ve vlastním tématu nebo přihlášení k odběru události ze služby Azure.

Důležité

Téma domény se v Event Gridu považuje za automaticky spravovaný prostředek. Odběr událostí můžete vytvořit v oboru domény bez vytvoření tématu domény. V tomto případě Event Grid automaticky vytvoří téma domény vaším jménem. Samozřejmě se můžete rozhodnout, že téma domény vytvoříte ručně. Toto chování vám umožní starat se o jeden méně prostředků při práci s velkým počtem témat domény. Když se odstraní poslední odběr tématu domény, odstraní se také téma domény bez ohledu na to, jestli se téma domény vytvořilo ručně nebo automaticky vytvořilo.

Předplatná oboru domény

Domény událostí také umožňují odběry v oboru domény. Odběr události v doméně události přijímá všechny události odeslané do domény bez ohledu na téma, do které se události odesílají. Předplatná oboru domény můžou být užitečná pro účely správy a auditování.

Publikování do domény události

Když vytvoříte doménu události, dostanete koncový bod publikování podobný tomu, jako kdybyste vytvořili téma ve službě Event Grid. Pokud chcete publikovat události do libovolného tématu v doméně událostí, odešlete události do koncového bodu domény stejným způsobem jako u vlastního tématu. Jediným rozdílem je, že musíte zadat téma, do kterého chcete událost doručit. Například publikování následujícího pole událostí by odeslalo událost s tématem "id": "1111"foo , zatímco událost s "id": "2222" událostí by byla odeslána do tématu bar.

Při použití schématu cloudové události zadejte název tématu Event Gridu v doméně jako hodnotu vlastnostisource. V následujícím příkladu source je vlastnost nastavena foo na první událost a na bar druhou událost.

Pokud chcete k určení zamýšleného tématu v doméně použít jiné pole, při vytváření domény zadejte mapování vstupního schématu. Pokud například používáte rozhraní REST API, použijte vlastnost properties.inputSchemaMapping , kdy chcete toto pole namapovat na properties.topic. Pokud používáte sadu .NET SDK, použijte EventGridJsonInputSchemaMapping. Další sady SDK také podporují mapování schématu.

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

Domény událostí zpracovávají publikování do témat za vás. Místo publikování událostí do každého tématu, které spravujete jednotlivě, můžete publikovat všechny události do koncového bodu domény. Event Grid zajišťuje, aby se každá událost odeslala do správného tématu.

Ceny

Domény událostí používají stejné provozní ceny jako všechny ostatní funkce ve službě Event Grid. Operace fungují stejně v doménách událostí jako ve vlastních tématech. Každý příchozí přenos dat události do domény události je operace a každý pokus o doručení události je operace.

Další kroky

Další informace o nastavení domén událostí, vytváření témat, vytváření odběrů událostí a publikování událostí najdete v tématu Správa domén událostí.