Sdílet prostřednictvím


Předávání událostí do webhooků pomocí témat oboru názvů – Azure CLI (náhled)

Tento článek obsahuje podrobné pokyny k publikování událostí do Azure Event Gridu ve formátu JSON CloudEvents a jejich doručování pomocí modelu doručení nabízených oznámení. Pokud chcete být konkrétní, pomocí Azure CLI a Curl publikujete události do tématu oboru názvů ve službě Event Grid a odešlete tyto události z odběru událostí do cíle obslužné rutiny webhooku. Další informace o modelu doručení nabízených oznámení najdete v tématu Přehled doručení nabízených oznámení.

Poznámka:

Rozšíření Azure CLI Event Grid zatím nepodporuje namespacey ani žádné prostředky, které obsahují. K vytvoření prostředků Event Gridu použijeme prostředek Azure CLI .

Pokud nemáte účet Azure, vytvořte si bezplatný účet 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 chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí az login příkazu. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.

    • Když budete vyzváni, 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.

    • Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. 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.

Povolte poskytovatele prostředků Event Grid.

  1. Pokud ve svém předplatném Azure používáte Event Grid poprvé, 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í skupiny zdrojů

Vytvořte skupinu prostředků Azure pomocí příkazu az group create. Tuto skupinu prostředků použijete k zahrnutí všech prostředků vytvořených v tomto článku.

Obecný postup použití Cloud Shellu ke spouštění příkazů:

  • Výběrem možnosti Otevřít Cloud Shell zobrazíte okno Azure Cloud Shellu v pravém podokně.
  • Zkopírujte příkaz a vložte ho do okna Azure Cloud Shellu.
  • Stisknutím klávesy ENTER spusťte příkaz.
  1. Deklarujte proměnnou, která bude obsahovat název skupiny prostředků Azure. Zadejte název pro skupinu prostředků tím, že nahradíte <your-resource-group-name> hodnotou, která se vám líbí.

    resource_group="<your-resource-group-name>"
    
    location="<your-resource-group-location>"
    
  2. Vytvořte skupinu prostředků. Změňte umístění podle potřeby.

    az group create --name $resource_group --location $location
    

Vytvořit obor názvů

Obor názvů Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události. Následující příklad vytvoří ve vaší skupině prostředků obor názvů pomocí bashe ve službě Azure Cloud Shell. Název jmenného prostoru musí být jedinečný, protože je součástí záznamu v systému názvů domén (DNS). Název oboru názvů by měl splňovat následující pravidla:

  • Měl by mít délku 3 až 50 znaků.
  • Měla by být jedinečná na regionální úrovni.
  • Povolené znaky jsou a-z, A-Z, 0-9 a -
  • Neměl by začínat předponami rezervovaných klíčových slov, jako je Microsoft, Systemnebo EventGrid.
  1. Deklarujte proměnnou, která bude obsahovat název vašeho oboru názvů Event Grid. Zadejte název pro obor názvů tím, že nahradíte <your-namespace-name> hodnotou, která se vám líbí.

    namespace="<your-namespace-name>"
    
  2. Vytvořte obor názvů. Možná budete chtít změnit umístění, ve kterém je nasazená.

    az eventgrid namespace create -g $resource_group -n $namespace -l $location
    

Vytvoření tématu oboru názvů

Vytvořte téma, které slouží k uložení všech událostí publikovaných do koncového bodu oboru názvů.

  1. Deklarujte proměnnou, která bude obsahovat název tématu pro jmenný prostor. Zadejte název tématu oboru názvů tím, že nahradíte <your-topic-name> na hodnotu, která se vám líbí.

    topic="<your-topic-name>"
    
  2. Vytvořte téma prostoru názvů:

    az eventgrid namespace topic create -g $resource_group -n $topic --namespace-name $namespace 
    

Vytvoření koncového bodu zprávy

Před přihlášením k odběru tématu v oboru názvů vytvoříme koncový bod pro událostní zprávu. Koncový bod obvykle provádí 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 $resource_group \
      --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 webovou stránku, kde momentálně nejsou zobrazeny žádné zprávy.

Doručování událostí do webhooku Prohlížeče událostí Azure Event Gridu

Vytvořte odběr událostí push doručení do oboru názvů pomocí webhooku pro Prohlížeč Azure Event Grid.

  1. Definujte proměnnou, která bude obsahovat název odběru událostí.

    event_subscription="<your_event_subscription_name>"
    
  2. Nahraďte EVENTGRIDWEBSITENAME názvem webu Event Grid Viewer. Například: contosoegridviewer.

    az resource create --api-version 2024-06-01-preview --resource-group $resource_group --namespace Microsoft.EventGrid --resource-type eventsubscriptions --name $event_subscription --parent namespaces/$namespace/topics/$topic --location $location --properties "{\"eventDeliverySchema\": \"CloudEventSchemaV1_0\",\"deliveryConfiguration\":{\"deliveryMode\":\"Push\",\"push\":{\"destination\":{\"endpointType\":\"WebHook\",\"properties\":{\"endpointUrl\":\"https:\/\/$sitename.azurewebsites.net\/api/updates\"}}}}}"
    

Odeslat události do tématu

Teď odešlete ukázkovou událost do tématu oboru názvů pomocí kroků v této části.

Výpis přístupových klíčů jmenného prostoru

  1. Získejte přístupové klíče přidružené k oboru názvů, který jste vytvořili. Jednu z nich použijete k ověření při publikování událostí. Abyste mohli zobrazit seznam klíčů, potřebujete nejprve celé ID zdroje oboru názvů. Získejte ho spuštěním následujícího příkazu:

    namespace_resource_id=$(az eventgrid namespace show -g $resource_group -n $namespace --query "id" --output tsv)
    
  2. Získejte první klíč z prostoru názvů.

    key=$(az eventgrid namespace list-key -g $resource_group --namespace-name $namespace --query "key1" --output tsv)
    

Publikování události

  1. Načtěte hostitelské jméno oboru názvů. Použijete ho pro sestavení oboru názvů koncového bodu HTTP, na který se odesílají události. Následující operace byly nejprve k dispozici s verzí 2023-06-01-previewrozhraní API .

    publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
    
  2. Vytvořte ukázkovou událost kompatibilní s CloudEvents :

    event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
    

    Element data je datový obsah vaší události. V tomto poli může být libovolný JSON ve správném formátu. Další informace o vlastnostech (také známých jako atributy kontextu), které mohou být použity v události, najdete v specifikacích CloudEvents.

  3. Pomocí nástroje CURL odešlete událost do tématu. CURL je nástroj, který odesílá požadavky HTTP.

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

Ověřte, že prohlížeč Azure Event Grid přijal událost.

Ověřte, že webová aplikace Azure Event Grid Viewer zobrazuje události, které přijala z Event Gridu.

Snímek obrazovky znázorňující Prohlížeč služby Azure Event Grid s ukázkou přijatou událostí

V tomto rychlém průvodci jste jako zachytávač událostí použili webhook. Rychlý start, který používá centrum událostí Azure jako obslužnou rutinu události, najdete v tématu Doručování událostí do služby Azure Event Hubs pomocí témat oboru názvů.