Omówienie domen zdarzeń do zarządzania tematami usługi Event Grid
Domena zdarzeń udostępnia punkt końcowy dla tysięcy poszczególnych tematów związanych z tą samą aplikacją. Można o tym myśleć jako meta-temat, który może mieć tysiące indywidualnych tematów. Udostępnia on jeden punkt końcowy publikowania dla wszystkich tematów w domenie. Podczas publikowania zdarzenia wydawca musi określić temat docelowy w domenie, do której ma zostać opublikowany. Wydawca może wysyłać tablicę lub partię zdarzeń, w których zdarzenia są wysyłane do różnych tematów w domenie. Aby uzyskać szczegółowe informacje, zobacz sekcję Publikowanie zdarzeń w domenie zdarzeń.
Domeny zapewniają również kontrolę uwierzytelniania i autoryzacji nad poszczególnymi tematami, aby umożliwić partycjonowanie dzierżaw. W tym artykule opisano sposób używania domen zdarzeń do zarządzania przepływem zdarzeń niestandardowych w różnych organizacjach biznesowych, klientach lub aplikacjach. Użyj domen zdarzeń, aby:
- Zarządzanie wielodostępnych architektur opartych na zdarzeniach na dużą skalę.
- Zarządzanie uwierzytelnianiem i autoryzacją.
- Podziel tematy na partycje bez konieczności indywidualnego zarządzania nimi.
- Unikaj indywidualnego publikowania w poszczególnych punktach końcowych tematu.
Uwaga
Domena zdarzeń nie jest przeznaczona do obsługi scenariusza emisji, w którym zdarzenie jest wysyłane do domeny, a każdy temat w domenie odbiera kopię zdarzenia. Podczas publikowania zdarzeń wydawca musi określić temat docelowy w domenie, do której ma zostać opublikowany. Jeśli wydawca chce opublikować ten sam ładunek zdarzeń w wielu tematach w domenie, wydawca musi zduplikować ładunek zdarzenia i zmienić nazwę tematu i opublikować je w usłudze Event Grid przy użyciu punktu końcowego domeny pojedynczo lub jako partia.
Przykładowy przypadek użycia
Domeny zdarzeń są najłatwiej wyjaśnione przy użyciu przykładu. Załóżmy, że uruchamiasz maszyny budowlane Contoso, gdzie produkujesz ciągniki, sprzęt kopania i inne ciężkie maszyny. W ramach prowadzenia działalności firma wypycha informacje w czasie rzeczywistym do klientów dotyczące konserwacji sprzętu, kondycji systemów i aktualizacji kontraktów. Wszystkie te informacje są dostępne dla różnych punktów końcowych, w tym aplikacji, punktów końcowych klientów i innej infrastruktury skonfigurowanej przez klientów.
Domeny zdarzeń umożliwiają modelowanie maszyn budowlanych Contoso jako pojedynczej jednostki usługi Event Grid. Każdy z Twoich klientów jest reprezentowany jako temat w domenie. Uwierzytelnianie i autoryzacja są obsługiwane przy użyciu identyfikatora Entra firmy Microsoft. Każdy z Twoich klientów może subskrybować swój temat i otrzymywać do nich zdarzenia. Dostęp zarządzany za pośrednictwem domeny zdarzeń zapewnia, że będzie mógł uzyskiwać dostęp tylko do tematu.
Zapewnia on również pojedynczy punkt końcowy, do którego można publikować wszystkie zdarzenia klienta. Usługa Event Grid zajmie się upewnieniem się, że każdy temat jest świadomy tylko zdarzeń w zakresie dzierżawy.
Zarządzanie dostępem
Dzięki domenie uzyskujesz szczegółową autoryzację i kontrolę uwierzytelniania nad każdym tematem za pośrednictwem kontroli dostępu opartej na rolach (RBAC) platformy Azure. Za pomocą tych ról można ograniczyć każdą dzierżawę w aplikacji tylko do tematów, do których chcesz udzielić im dostępu. Kontrola dostępu oparta na rolach platformy Azure w domenach zdarzeń działa tak samo jak w pozostałej części usługi Event Grid i na platformie Azure. Użyj kontroli dostępu opartej na rolach platformy Azure, aby utworzyć i wymusić niestandardowe definicje ról w domenach zdarzeń.
Wbudowane role
Usługa Event Grid ma dwie wbudowane definicje ról, aby ułatwić pracę z domenami zdarzeń na platformie Azure. Te role to EventGrid EventSubscription Contributor i EventGrid EventSubscription Reader. Te role są przypisywane do użytkowników, którzy muszą subskrybować tematy w domenie zdarzeń. Zakres przypisania roli jest przypisywany tylko do tematu, do którego użytkownicy muszą subskrybować. Aby uzyskać informacje o tych rolach, zobacz Wbudowane role usługi Event Grid.
Subskrybowanie tematów
Subskrybowanie zdarzeń dla tematu w domenie zdarzeń jest takie samo jak tworzenie subskrypcji zdarzeń w temacie niestandardowym lub subskrybowanie zdarzenia z usługi platformy Azure.
Ważne
Temat domeny jest uważany za zasób zarządzany automatycznie w usłudze Event Grid. Subskrypcję zdarzeń można utworzyć w zakresie domeny bez tworzenia tematu domeny. W takim przypadku usługa Event Grid automatycznie tworzy temat domeny w Twoim imieniu. Oczywiście nadal możesz ręcznie utworzyć temat domeny. To zachowanie pozwala martwić się o jeden mniej zasobów podczas pracy z ogromną liczbą tematów domeny. Gdy ostatnia subskrypcja tematu domeny zostanie usunięta, temat domeny zostanie również usunięty niezależnie od tego, czy temat domeny został utworzony ręcznie, czy automatycznie utworzony.
Subskrypcje zakresu domeny
Domeny zdarzeń umożliwiają również subskrypcje zakresu domeny. Subskrypcja zdarzeń w domenie zdarzeń odbiera wszystkie zdarzenia wysyłane do domeny niezależnie od tematu, do których są wysyłane zdarzenia. Subskrypcje zakresu domeny mogą być przydatne do celów zarządzania i inspekcji.
Publikowanie w domenie zdarzeń
Podczas tworzenia domeny zdarzeń otrzymujesz punkt końcowy publikowania podobny do tego, czy utworzono temat w usłudze Event Grid. Aby opublikować zdarzenia w dowolnym temacie w domenie zdarzeń, wypchnij zdarzenia do punktu końcowego domeny w taki sam sposób, jak w przypadku tematu niestandardowego. Jedyną różnicą jest to, że należy określić temat, do którego ma zostać dostarczone zdarzenie. Na przykład opublikowanie następującej tablicy zdarzeń spowoduje wysłanie zdarzenia do "id": "1111"
tematu foo
, podczas gdy zdarzenie z elementem "id": "2222"
zostanie wysłane do tematu bar
.
W przypadku korzystania ze schematu zdarzeń w chmurze określ nazwę tematu usługi Event Grid w domenie jako wartość właściwości source
. W poniższym przykładzie source
właściwość jest ustawiona na foo
dla pierwszego zdarzenia i na bar
wartość dla drugiego zdarzenia.
Jeśli chcesz użyć innego pola do określenia zamierzonego tematu w domenie, określ mapowanie schematu wejściowego podczas tworzenia domeny. Jeśli na przykład używasz interfejsu API REST, użyj właściwości properties.inputSchemaMapping , kiedy mapować to pole na properties.topic
. Jeśli używasz zestawu .NET SDK, użyj polecenia EventGridJsonInputSchemaMapping
. Inne zestawy SDK obsługują również mapowanie schematu.
[{
"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"
}]
Domeny zdarzeń obsługują publikowanie w tematach. Zamiast publikować zdarzenia dla każdego tematu zarządzanego indywidualnie, można opublikować wszystkie zdarzenia w punkcie końcowym domeny. Usługa Event Grid zapewnia, że każde zdarzenie jest wysyłane do poprawnego tematu.
Cennik
Domeny zdarzeń używają tych samych cen operacji, które są używane przez wszystkie inne funkcje usługi Event Grid. Operacje działają tak samo w domenach zdarzeń, jak w tematach niestandardowych. Każdy ruch przychodzący zdarzenia do domeny zdarzeń jest operacją, a każda próba dostarczenia zdarzenia jest operacją.
Następne kroki
Aby dowiedzieć się więcej o konfigurowaniu domen zdarzeń, tworzeniu tematów, tworzeniu subskrypcji zdarzeń i publikowaniu zdarzeń, zobacz Zarządzanie domenami zdarzeń.