Směrování vlastních událostí do webového koncového bodu s využitím webu Azure Portal a Event Gridu
Event Grid je plně spravovaná služba, která umožňuje snadnou správu událostí napříč mnoha různými službami a aplikacemi Azure. Zjednodušuje vytváření aplikací řízených událostmi a bez serveru. Přehled služby najdete v tématu Event Grid .
V tomto článku použijete následující Azure Portal k následujícím úlohám:
- Vytvořte vlastní téma.
- Přihlaste se k odběru vlastního tématu.
- Aktivujte událost.
- Podívejte se na 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.
Požadavky
Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Povolit poskytovatele prostředků služby Event Grid
Pokud jste ve vašem předplatném Azure ještě službu Event Grid nepoužívali, budete možná muset zaregistrovat poskytovatele prostředků služby Event Grid.
Na webu Azure Portal:
- V nabídce vlevo vyberte odběry .
- Vyberte předplatné, které používáte pro službu Event Grid.
- V nabídce vlevo v části Nastavení vyberte poskytovatelé prostředků.
- Vyhledejte Microsoft.EventGrid.
- Pokud prostředek není zaregistrovaný, vyberte Zaregistrovat.
Dokončení registrace může chvíli trvat. Stav můžete aktualizovat kliknutím na Aktualizovat. Jakmile se Stav změní na Zaregistrováno, můžete pokračovat.
Vytvoření vlastního tématu
Téma Event Gridu poskytuje uživatelsky definovaný koncový bod, do kterého odesíláte události.
Přihlaste se k portálu Azure.
Do panelu hledání v tématu zadejte Event Grid Témata a pak v rozevíracím seznamu Event Grid Témata.
Na stránce Event Grid témata vyberte na panelu nástrojů + Vytvořit.
Na stránce Vytvořit téma postupujte takto:
Vyberte své předplatné Azure.
Vyberte existující skupinu prostředků nebo vyberte Vytvořit novou a zadejte název skupiny prostředků.
Zadejte jedinečný název vlastního tématu. Název tématu musí být jedinečný, protože je reprezentován položkou DNS. Nepoužívejte název zobrazený na obrázku. Místo toho vytvořte vlastní název – musí mít 3 až 50 znaků a obsahovat pouze hodnoty a–z, A–Z, 0–9 a "-".
Vyberte umístění tématu Event Gridu.
V dolní části stránky vyberte Zkontrolovat a vytvořit.
Na kartě Zkontrolovat a vytvořit na stránce Vytvořit téma vyberte Vytvořit.
Po úspěšném nasazení vyberte Přejít k prostředku a přejděte Event Grid téma pro vaše téma. Nechte tuto stránku otevřenou. Použijete ho později v tomto rychlém startu.
Vytvoření koncového bodu zpráv
Před vytvořením odběru pro vlastní téma vytvořte koncový bod pro zprávu 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á zobrazuje zprávy události. Nasazené řešení zahrnuje plán služby App Service, webovou aplikaci App Service a zdrojový kód z GitHubu.
Na stránce článku vyberte Nasadit do Azure a nasaďte řešení do svého předplatného. Na webu Azure Portal zadejte hodnoty pro parametry.
Na stránce Vlastní nasazení proveďte následující kroky:
V části Skupina prostředků vyberte skupinu prostředků, kterou jste vytvořili při vytváření účtu úložiště. Po dokončení kurzu odstraněním skupiny prostředků vám usnadní vyčištění.
Jako Název webu zadejte název webové aplikace.
Do pole Název plánu hostování zadejte název App Service, který se má použít k hostování webové aplikace.
Vyberte Zkontrolovat a vytvořit.
Na stránce Zkontrolovat a vytvořit vyberte Vytvořit.
Dokončení nasazení může trvat několik minut. Na portálu vyberte Upozornění (ikona zvonku) a pak vyberte Přejít ke skupině prostředků.

Na stránce Skupina prostředků vyberte v seznamu prostředků webovou aplikaci, kterou jste vytvořili. V tomto seznamu se App Service plán úložiště a účet úložiště.

Na App Service vaší webové aplikace vyberte adresu URL a přejděte na web. Adresa URL by měla být v tomto formátu:
https://<your-site-name>.azurewebsites.net.
Ověřte, že se web zobrazí, ale zatím na něj nebyly publikovány žádné události.

Přihlášení k odběru vlastního tématu
K odběru tématu Event Gridu se přihlašujete, aby služba Event Grid věděla, které události chcete sledovat a kam má tyto události odesílat.
Teď na stránce Event Grid tématu vlastního tématu vyberte na panelu nástrojů + Odběr událostí.
Na stránce Vytvořit odběr události postupujte takto:
Zadejte název odběru události.
Jako Typ koncového bodu vyberte Webhooky.
Zvolte Vybrat koncový bod.
Jako koncový bod webhooku zadejte adresu URL vaší webové aplikace a do adresy URL domovské stránky přidejte
api/updates. Zvolte Potvrdit výběr.
Zpátky na stránce Vytvořit odběr události vyberte Vytvořit.
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.

Odeslání události do tématu
Nyní aktivujeme událost, abychom viděli, jak služba Event Grid distribuuje zprávu do vašeho koncového bodu. K odeslání testovací události do vlastního tématu použijte Azure CLI nebo PowerShell. Obvykle by aplikace nebo služba Azure odesílala data události.
V prvním příkladu se používá Azure CLI. Načte adresu URL a klíč vlastního tématu a data ukázkové události. Místo položky <topic name> použijte název vlastního tématu. Vytvoří se ukázková data události. 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.
Azure CLI
V Azure Portal vyberte Cloud Shell. Okno Cloud Shell otevře v dolním podokně webového prohlížeče.
V levém horním rohu okna Cloud Shell Bash.

Spuštěním následujícího příkazu získejte koncový bod pro téma: Po zkopírování a vložení příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu. Do tohoto koncového bodu tématu budete publikovat ukázkové události.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)Spuštěním následujícího příkazu získejte klíč pro vlastní téma: Po zkopírování a vložení příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu. Je to primární klíč tématu Event Gridu. Pokud chcete tento klíč získat z Azure Portal, přepněte na kartu Přístupové klíče na Event Grid téma. Abyste mohli odeslat událost do vlastního tématu, potřebujete přístupový klíč.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)Zkopírujte následující příkaz s definicí události a stiskněte ENTER.
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"} ]'Spuštěním následujícího příkazu c CURL událost z postate: V příkazu je hlavička nastavená
aeg-sas-keyna přístupový klíč, který jste získali dříve.curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
V druhém příkladu se k podobným krokům používá PowerShell.
V Azure Portal vyberte Cloud Shell (případně přejděte na
https://shell.azure.com/). Okno Cloud Shell otevře v dolním podokně webového prohlížeče.
V Cloud Shell vyberte v levém horním rohu okna Cloud Shell PowerShell. Podívejte se na Cloud Shell ukázkového okna v části Azure CLI.
Nastavte následující proměnné. Po zkopírování a vložení každého příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu:
Resource group (Skupina prostředků):
$resourceGroupName = "<resource group name>"Event Grid tématu:
$topicName = "<topic name>"Spuštěním následujících příkazů získejte koncový bod a klíče pro toto téma:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicNamePřipravte událost. Zkopírujte a spusťte příkazy v Cloud Shell okně.
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"K odeslání události použijte rutinu Invoke-WebRequest.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Ověření v prohlížeči Event Grid Viewer
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.
Vyčištění prostředků
Pokud chcete pokračovat v práci s touto událostí, nevyčišťujte prostředky vytvořené v rámci tohoto článku. V opačném případě odstraňte prostředky, které jste v rámci tohoto článku vytvořili.
V nabídce vlevo vyberte Skupiny prostředků. Pokud ji v nabídce vlevo nevidíte, vyberte v nabídce vlevo Všechny služby a pak vyberte Skupiny prostředků.

Výběrem skupiny prostředků spusťte stránku Skupina prostředků.
Na panelu nástrojů vyberte Odstranit skupinu prostředků.
Potvrďte odstranění zadáním názvu skupiny prostředků a vyberte Odstranit.
Druhá skupina prostředků, kterou vidíte na obrázku, byla vytvořena a používána oknem Cloud Shell prostředků. Odstraňte ho, pokud nechcete toto okno použít Cloud Shell později.
Další kroky
Když teď víte, jak vytvářet vlastní témata a odběry událostí, zjistěte, s čím vám služba Event Grid ještě může pomoct:
- Informace o službě Event Grid
- Směrování událostí služby Blob Storage do vlastního webového koncového bodu
- Monitorování změn virtuálního počítače pomocí služeb Azure Event Grid a Logic Apps
- Streamování velkých objemů dat do datového skladu
V následujících ukázkách se dozvíte o publikování událostí do a používání událostí z Event Grid různých programovacích jazyků.
