Rychlý start: Směrování vlastních událostí do webového koncového bodu pomocí Azure CLI a Event Gridu
V tomto článku pomocí Azure CLI vytvoříte vlastní téma ve službě Azure Event Grid, přihlásíte se k odběru vlastního tématu a aktivujete událost, aby se zobrazil výsledek.
Poznámka:
Pokud s Azure Event Gridem teprve začínáte, přečtěte si , co je Azure Event Grid , abyste získali přehled o službě, než si projdete tímto kurzem.
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.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- 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
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
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
jeRegistered
, 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 "-".
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>
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.
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>
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/
.
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
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)
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.
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:
- 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 Event Gridu a jejich využívání pomocí různých programovacích jazyků.