Sdílet prostřednictvím


Doručování událostí do služby Azure Event Hubs pomocí témat oboru názvů – Azure CLI

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 Event Hubs. 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 obory názvů a žádné prostředky, které obsahuje. K vytvoření prostředků Event Gridu použijeme prostředek Azure CLI.

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í az login příkazu. 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.

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í 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 skupiny prostředků nahrazením <your-resource-group-name> hodnoty, 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ření oboru 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 oboru názvů musí být jedinečný, protože je součástí položky DNS (Domain Name System). 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 Gridu. Zadejte název oboru názvů nahrazením <your-namespace-name> hodnoty, 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 oboru názvů. Zadejte název tématu oboru názvů nahrazením <your-topic-name> hodnoty, která se vám líbí.

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

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

Vytvoření nového prostředku Event Hubs

Vytvořte prostředek služby Event Hubs, který se používá jako cíl obslužné rutiny pro odběr nabízeného doručení tématu oboru názvů.

  1. Deklarujte proměnnou, která bude obsahovat název oboru názvů služby Event Hubs.

    eventHubsNamespace="<your-event-hubs-namespace-name>"
    
  2. Vytvořte obor názvů služby Event Hubs.

    az eventhubs namespace create --resource-group $resource_group --name $eventHubsNamespace --location $location  
    
  3. Deklarujte proměnnou, která bude obsahovat název centra událostí.

    eventHubsEventHub="<your-event-hub-name>"
    
  4. Spuštěním následujícího příkazu vytvořte centrum událostí v oboru názvů.

    az eventhubs eventhub create --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub 
    

Doručování událostí do služby Event Hubs pomocí spravované identity

Pokud chcete doručovat události do center událostí v oboru názvů služby Event Hubs pomocí spravované identity, postupujte takto:

  1. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem: obory názvů. Pokračujte ve čtení k další části a zjistěte, jak povolit spravovanou identitu pomocí Azure CLI.
  2. Přidejte identitu do role Odesílatele dat služby Azure Event Hubs v oboru názvů služby Event Hubs. Pokračujte v čtení do další části a zjistěte, jak přidat přiřazení role.
  3. Povolte povolit důvěryhodné služby Microsoft obejít toto nastavení brány firewall v oboru názvů služby Event Hubs.
  4. Nakonfigurujte odběr událostí, který používá centrum událostí jako koncový bod, aby používal spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem.

Povolení spravované identity v oboru názvů Event Gridu

Povolte spravovanou identitu přiřazenou systémem v oboru názvů Event Gridu.

az eventgrid namespace update --resource-group $resource_group --name $namespace --identity {type:systemassigned}

Přidání přiřazení role ve službě Event Hubs pro spravovanou identitu Event Gridu

  1. Získejte ID instančního objektu identity spravovaného systémem služby Event Grid.

    principalId=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query identity.principalId -o tsv)
    
  2. Získejte ID prostředku centra událostí Event Hubs.

    eventHubResourceId=$(az eventhubs eventhub show --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub --query id -o tsv)
    
  3. Přidání přiřazení role ve službě Event Hubs pro spravovanou identitu systému Event Grid

    az role assignment create --role "Azure Event Hubs Data Sender" --assignee $principalId --scope $eventHubResourceId
    

Vytvoření odběru událostí

Vytvořte nové odběry událostí doručení nabízených oznámení.

event_subscription="<your_event_subscription_name>"
az resource create --api-version 2023-06-01-preview --resource-group $resource_group --namespace Microsoft.EventGrid --resource-type eventsubscriptions --name $event_subscription --parent namespaces/$namespace/topics/$topic --location $location --properties "{\"deliveryConfiguration\":{\"deliveryMode\":\"Push\",\"push\":{\"maxDeliveryCount\":10,\"deliveryWithResourceIdentity\":{\"identity\":{\"type\":\"SystemAssigned\"},\"destination\":{\"endpointType\":\"EventHub\",\"properties\":{\"resourceId\":\"$eventHubResourceId\"}}}}}}"

Odeslání událostí 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íčů oboru názvů

  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 úplné ID prostředku 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 oboru 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 název hostitele oboru názvů. Použijete ho k vytvoření koncového bodu HTTP oboru názvů, do kterého 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á část události. V tomto poli může být libovolný JSON ve správném formátu. Další informace ovlastnostech

  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
    

    Na webu Azure Portal přejděte na stránku Oboru názvů služby Event Hubs, aktualizujte stránku a ověřte, že čítač příchozích zpráv v grafu indikuje, že byla přijata událost.

    Snímek obrazovky zobrazující stránku centra událostí s grafem, který znázorňuje přijetí události

Další kroky

V tomto článku jste vytvořili a nakonfigurovali obor názvů Event Gridu a prostředky služby Event Hubs. Podrobné pokyny pro příjem událostí z centra událostí najdete v těchto kurzech: