Kurz: Směrování vlastních událostí do hybridních připojení Azure Relay pomocí Azure CLI a Event Gridu

Azure Event Grid je služba zpracování událostí pro cloud. Azure Relay Hybrid Connections je jednou z podporovaných obslužných rutin událostí. Hybridní připojení použijete jako obslužnou rutinu události, když je potřeba zpracovat události z aplikací, které nemají veřejný koncový bod. Tyto aplikace se můžou nacházet ve vaší podnikové síti. 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. Události odešlete do hybridního připojení.

Požadavky

  • Použijte prostředí Bash v Azure Cloud Shell. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shell.

  • 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 Spuštění 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 Azure CLI verze 2.0.56 nebo novější. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Vytvoření skupiny prostředků

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.

az group create --name gridResourceGroup --location westus2

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ů. Nahraďte <topic_name> jedinečným názvem vlastního tématu. Název tématu Event Gridu musí být jedinečný, protože je reprezentovaný položkou DNS.

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

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

Přihlásíte se k odběru tématu Event Gridu, abyste službě Event Grid sdělili, které události chcete sledovat. Následující příklad se přihlásí k odběru vlastního tématu, které jste vytvořili, a předá ID prostředku hybridního připojení pro koncový bod. ID hybridního připojení je ve formátu:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>

Následující skript načte ID prostředku oboru názvů přenosu. Vytvoří ID hybridního připojení a přihlásí se k odběru tématu Event Gridu. Skript nastaví typ koncového bodu na hybridconnection a použije ID hybridního připojení pro daný koncový bod.

relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>

relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name <event_subscription_name> \
  --endpoint-type hybridconnection \
  --endpoint $hybridid \
  --expiration-date "<yyyy-mm-dd>"

Všimněte si, že je nastavené datum vypršení platnosti odběru.

Vytvoření aplikace pro zpracování událostí

Potřebujete aplikaci, která dokáže načítat události z hybridního připojení. Tuto operaci provádí ukázka příjemce hybridního připojení Microsoft Azure Event Grid pro jazyk C#. Už jste dokončili požadované kroky.

  1. Ujistěte se, že máte Sadu Visual Studio 2019 nebo novější.

  2. Naklonujte si úložiště na místní počítač.

  3. Načtěte projekt HybridConnectionConsumer v sadě Visual Studio.

  4. V souboru Program.cs nahraďte <relayConnectionString> a <hybridConnectionName> připojovacím řetězcem předávání a názvem hybridního připojení, které jste vytvořili.

  5. V sadě Visual Studio zkompilujte a spusťte aplikaci.

Odeslání události do tématu

Teď aktivujeme událost, abychom viděli, jak služba Event Grid distribuuje zprávu do vašeho koncového bodu. Tento článek ukazuje, jak aktivovat událost pomocí Azure CLI. Alternativně můžete použít aplikaci vydavatele Event Grid.

Nejprve získáme adresu URL a klíč vlastního tématu. Znovu místo položky <topic_name> použijte název vlastního tématu.

endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -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. 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 vlastního tématu.

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"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

Aplikace naslouchacího procesu by měla dostat zprávu o událostech.

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