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.

Button to deploy the Resource Manager template to Azure.

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í.