Správa témat a publikování událostí pomocí domén událostí
V tomto článku se dozvíte, jak:
- Vytvoření domény Event Gridu
- Přihlášení k odběru témat Event Gridu
- Výpis klíčů
- Publikování událostí do domény
Další informace o doménách událostí najdete v tématu Vysvětlení domén událostí pro správu témat event Gridu.
Vytvoření domény události
Pokud chcete spravovat velké sady témat, vytvořte doménu událostí.
az eventgrid domain create \
-g <my-resource-group> \
--name <my-domain-name> \
-l <location>
Úspěšné vytvoření vrátí následující hodnoty:
{
"endpoint": "https://<my-domain-name>.westus2-1.eventgrid.azure.net/api/events",
"id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>",
"inputSchema": "EventGridSchema",
"inputSchemaMapping": null,
"location": "westus2",
"name": "<my-domain-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<my-resource-group>",
"tags": null,
"type": "Microsoft.EventGrid/domains"
}
endpoint
Poznamenejte si, a id
jak jsou potřeba ke správě domény a publikování událostí.
Správa přístupu k tématům
Správa přístupu k tématům se provádí prostřednictvím přiřazení role. Přiřazení role používá řízení přístupu na základě role v Azure k omezení operací s prostředky Azure autorizovaným uživatelům v určitém rozsahu.
Event Grid má dvě předdefinované role, které můžete použít k přiřazení přístupu konkrétních uživatelů k různým tématům v rámci domény. Tyto role jsou EventGrid EventSubscription Contributor (Preview)
, které umožňují vytvořit a odstranit odběry a EventGrid EventSubscription Reader (Preview)
, které umožňují pouze výpis odběrů událostí.
Následující omezení alice@contoso.com
příkazů Azure CLI pro vytváření a odstraňování odběrů událostí pouze v tématu demotopic1
:
az role assignment create \
--assignee alice@contoso.com \
--role "EventGrid EventSubscription Contributor (Preview)" \
--scope /subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1
Další informace o správě přístupu pro operace Event Gridu najdete v tématu Zabezpečení a ověřování event Gridu.
Vytvoření témat a odběrů
Služba Event Grid automaticky vytvoří a spravuje odpovídající téma v doméně na základě volání pro vytvoření odběru událostí pro téma domény. Neexistuje žádný samostatný krok pro vytvoření tématu v doméně. Podobně platí, že při odstranění posledního odběru události pro téma se téma odstraní také.
Přihlášení k odběru tématu v doméně je stejné jako přihlášení k odběru jakéhokoli jiného prostředku Azure. Pro ID zdrojového prostředku zadejte ID domény události vrácené při vytváření domény dříve. Pokud chcete zadat téma, které chcete přihlásit k odběru, přidejte /topics/<my-topic>
na konec ID zdrojového prostředku. Pokud chcete vytvořit odběr událostí oboru domény, který přijímá všechny události v doméně, zadejte ID domény události bez zadání témat.
Uživatel, kterému jste udělili přístup v předchozí části, obvykle vytvoří předplatné. Pro zjednodušení tohoto článku vytvoříte předplatné.
az eventgrid event-subscription create \
--name <event-subscription> \
--source-resource-id "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1" \
--endpoint https://contoso.azurewebsites.net/api/updates
Pokud potřebujete testovací koncový bod pro přihlášení k odběru událostí, můžete vždy nasadit předem připravenou webovou aplikaci , která zobrazuje příchozí události. Události můžete odeslat na svůj testovací web na adrese https://<your-site-name>.azurewebsites.net/api/updates
.
Oprávnění nastavená pro téma jsou uložena v Microsoft Entra ID a musí být explicitně odstraněna. Odstranění odběru událostí neodvolá přístup uživatelů k vytváření odběrů událostí, pokud zapisují přístup k tématu.
Publikování událostí do domény Event Gridu
Publikování událostí do domény je stejné jako publikování do vlastního tématu. Místo publikování do vlastního tématu ale publikujete všechny události do koncového bodu domény. V datech událostí JSON zadáte téma, na které chcete události přejít. Následující pole událostí by vedlo k události s "id": "1111"
tématem demotopic1
, zatímco událost s "id": "2222"
událostí by byla odeslána do tématu demotopic2
:
[{
"topic": "demotopic1",
"id": "1111",
"eventType": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"eventTime": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"dataVersion": "1.0"
},
{
"topic": "demotopic2",
"id": "2222",
"eventType": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"eventTime": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"dataVersion": "1.0"
}]
Pokud chcete získat koncový bod domény pomocí Azure CLI, použijte
az eventgrid domain show \
-g <my-resource-group> \
-n <my-domain>
Klíče pro doménu získáte pomocí:
az eventgrid domain key list \
-g <my-resource-group> \
-n <my-domain>
A pak pomocí své oblíbené metody můžete vytvořit HTTP POST k publikování událostí do vaší domény Event Gridu.
Poznámka:
Ukázky, které k publikování událostí do domény Event Gridu používají sady SDK programovacího jazyka, použijte následující odkazy:
Hledání seznamů témat nebo odběrů
K vyhledávání a správě velkého počtu témat nebo odběrů podporují rozhraní API služby Event Grid výpis a stránkování.
Pomocí rozhraní příkazového řádku
Například následující příkaz zobrazí seznam všech témat s názvem, který obsahuje mytopic
.
az eventgrid topic list --odata-query "contains(name, 'mytopic')"
Další informace o tomto příkazu naleznete v tématu az eventgrid topic list
.
Další kroky
- Další informace o konceptech vysoké úrovně v doménách událostí a o tom, proč jsou užitečné, najdete v koncepčním přehledu domén událostí.