Rychlý start: Směrování vlastních událostí do webového koncového bodu pomocí Azure CLI a Event Gridu

Azure Event Grid je služba zpracování událostí pro cloud. V tomto článku vytvoříte pomocí Azure CLI vlastní téma, přihlásíte se k jeho odběru a aktivujete událost, abyste viděli výsledek.

Obvykle odesíláte události do koncového bodu, který data události zpracuje a provede akce. Pro zjednodušení tohoto článku však budete události odesílat do webové aplikace, která shromažďuje a zobrazuje zprávy.

Až budete hotovi, uvidíte, že se data události odeslala do webové aplikace.

Screenshot showing the Event Grid Viewer sample with a sample event.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

  • Tento článek vyžaduje verzi 2.0.70 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Vytvoření skupiny zdrojů

Témata služby Event Grid jsou prostředky Azure a musí být umístěné ve skupině prostředků Azure. Skupina prostředků je logická kolekce, ve které se nasazují a spravují prostředky Azure.

Vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků gridResourceGroup v umístění westus2. Pokud vyberete Vyzkoušet, v pravém podokně se zobrazí okno Azure Cloud Shellu. Potom vyberte Kopírovat , zkopírujte příkaz a vložte ho do okna Azure Cloud Shellu a stisknutím klávesy ENTER příkaz spusťte. Pokud chcete, změňte název skupiny prostředků a umístění.

az group create --name gridResourceGroup --location westus2

Povolení poskytovatele prostředků Event Gridu

  1. Pokud jste službu Event Grid ve svém předplatném Azure ještě nepoužívali, možná budete muset zaregistrovat poskytovatele prostředků Event Gridu. Spuštěním následujícího příkazu zaregistrujte poskytovatele:

    az provider register --namespace Microsoft.EventGrid
    
  2. Dokončení registrace může chvíli trvat. Pokud chcete zkontrolovat stav, spusťte následující příkaz:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Jakmile registrationState je Registered, můžete pokračovat.

Vytvoření vlastního tématu

Téma Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události. Následující příklad vytvoří vlastní téma ve vaší skupině prostředků pomocí bashe ve službě Azure Cloud Shell. Nahraďte <your-topic-name> jedinečným názvem vašeho tématu. Název vlastního tématu musí být jedinečný, protože je součástí položky DNS (Domain Name System). Kromě toho musí být mezi 3 až 50 znaky a obsahovat pouze hodnoty a-z, A-Z, 0-9 a "-".

  1. Zkopírujte následující příkaz, zadejte název tématu a stisknutím klávesy ENTER příkaz spusťte.

    topicname=<your-topic-name>
    
  2. az eventgrid topic create Pomocí příkazu vytvořte vlastní téma.

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Vytvoření koncového bodu zpráv

Před přihlášením k odběru vlastního tématu vytvoříme koncový bod pro zprávy události. Koncový bod obvykle provede akce na základě dat události. Pro zjednodušení tohoto rychlého startu nasadíte předem připravenou webovou aplikaci , která zobrazí zprávy událostí. Nasazené řešení zahrnuje plán služby App Service, webovou aplikaci App Service a zdrojový kód z GitHubu.

  1. Zkopírujte následující příkaz, zadejte název webové aplikace (ukázka prohlížeče Event Grid) a stisknutím klávesy ENTER příkaz spusťte. Nahraďte <your-site-name> jedinečným názvem vaší webové aplikace. Název webové aplikace musí být jedinečný, protože je součástí položky DNS.

    sitename=<your-site-name>
    
  2. Spusťte nasazení az deployment group create webové aplikace pomocí šablony Azure Resource Manageru.

    az deployment group create \
      --resource-group gridResourceGroup \
      --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
      --parameters siteName=$sitename hostingPlanName=viewerhost
    

Dokončení nasazení může trvat několik minut. Po úspěšném nasazení si webovou aplikaci prohlédněte, abyste se ujistili, že funguje. Ve webovém prohlížeči přejděte na: https://<your-site-name>.azurewebsites.net

Měli byste vidět web aktuálně bez zobrazených zpráv.

Přihlášení k odběru vlastního tématu

Přihlásíte se k odběru tématu Event Gridu a sdělíte službě Event Grid, které události chcete sledovat a kam se mají tyto události odesílat. Následující příklad se přihlásí k odběru vlastního tématu, které jste vytvořili, a předá adresu URL z webové aplikace jako koncový bod pro oznámení události.

Koncový bod pro webovou aplikaci musí obsahovat příponu /api/updates/.

  1. Zkopírujte následující příkaz, nahraďte $sitename názvem webové aplikace, kterou jste vytvořili v předchozím kroku, a stisknutím klávesy ENTER příkaz spusťte.

    endpoint=https://$sitename.azurewebsites.net/api/updates
    
  2. Spuštěním následujícího příkazu získejte ID prostředku tématu, které jste vytvořili.

    topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
    
  3. Spuštěním následujícího příkazu vytvořte odběr vlastního tématu pomocí koncového bodu.

    az eventgrid event-subscription create \
      --source-resource-id $topicresourceid \
      --name demoViewerSub \
      --endpoint $endpoint      
    

    Podívejte se na webovou aplikaci znovu a všimněte si, že do ní byla odeslána událost ověření odběru. Vyberte ikonu oka a rozbalte data události. Služba Event Grid odešle událost ověření, aby koncový bod mohl ověřit, že data události chce přijímat. Webová aplikace obsahuje kód pro ověření odběru.

    View the subscription event in Azure Event Grid Viewer

Odeslání události do vlastního tématu

Teď aktivujeme událost, abychom viděli, jak služba Event Grid distribuuje zprávu do vašeho koncového bodu. Nejprve získáme adresu URL a klíč vlastního tématu.

endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)

V zájmu zjednodušení tohoto článku použijte k odeslání do vlastního tématu ukázková data události. Obvykle by aplikace nebo služba Azure odesílala data události. Následující příklad vytvoří ukázková data události:

event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'

Element JSON data je datová část vaší události. V tomto poli může být libovolný JSON ve správném formátu. Můžete také použít pole subject (předmět) pro pokročilé směrování a filtrování.

CURL je nástroj, který odesílá požadavky HTTP. V tomto článku používáme nástroj CURL k odeslání události do tématu.

curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

Právě jste aktivovali událost a služba Event Grid odeslala zprávu do koncového bodu, který jste nakonfigurovali při přihlášení k odběru. Podívejte se na webovou aplikaci, abyste si zobrazili událost, kterou jste právě odeslali.

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]

Vyčištění prostředků

Pokud chcete pokračovat v práci s touto událostí nebo aplikací prohlížeče událostí, nevyčišťujte prostředky vytvořené v rámci tohoto článku. Jinak pomocí následujícího příkazu odstraňte prostředky, které jste v rámci tohoto článku vytvořili.

az group delete --name gridResourceGroup

Další kroky

Když teď víte, jak vytvářet témata a odběry událostí, zjistěte, s čím vám služba Event Grid ještě může pomoct:

V následujících ukázkách se dozvíte o publikování událostí do Event Gridu a jejich využívání pomocí různých programovacích jazyků.