Share via


Események továbbítása az Azure Event Hubsba névtértémák használatával – Azure CLI

A cikk részletes útmutatást nyújt az események CloudEvents JSON formátumban történő közzétételéhez az Azure Event Gridben, és ezeket az eseményeket a leküldéses kézbesítési modell használatával kézbesítheti. Konkrétan az Azure CLI és a Curl használatával teheti közzé az eseményeket az Event Grid névtértémakörében, és leküldheti az eseményeket egy esemény-előfizetésből egy Event Hubs-kezelő célhelyre. A leküldéses kézbesítési modellről további információt a leküldéses kézbesítés áttekintésében talál.

Feljegyzés

Az Azure CLI Event Grid-bővítmény még nem támogatja a névtereket és a benne található erőforrásokat. Az Azure CLI-erőforrást fogjuk használni Event Grid-erőforrások létrehozásához.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

  • Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.

  • Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.

    • Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be a az login parancs használatával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.

    • Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.

    • Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.

  • Ez a cikk az Azure CLI 2.0.70-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Az Event Grid-erőforrás-szolgáltató engedélyezése

  1. Ha korábban nem használta az Event Gridet az Azure-előfizetésében, előfordulhat, hogy regisztrálnia kell az Event Grid-erőforrás-szolgáltatót. A szolgáltató regisztrálásához futtassa az alábbi parancsot:

    az provider register --namespace Microsoft.EventGrid
    
  2. Eltarthat egy ideig, amíg a regisztráció befejeződik. Az állapot ellenőrzéséhez futtassa a következő parancsot:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Ha a registrationStateRegistered értékű, készen áll a folytatásra.

Erőforráscsoport létrehozása

Hozzon létre egy Azure-erőforráscsoportot az az group create paranccsal. Ez az erőforráscsoport a cikkben létrehozott összes erőforrást tartalmazza.

A Cloud Shell parancsok futtatásának általános lépései a következők:

  • Válassza a Cloud Shell megnyitása lehetőséget egy Azure Cloud Shell-ablak megtekintéséhez a jobb oldali panelen.
  • Másolja ki a parancsot, és illessze be az Azure Cloud Shell ablakába.
  • A parancs futtatásához nyomja le az ENTER billentyűt.
  1. Deklaráljon egy változót egy Azure-erőforráscsoport nevének tárolásához. Adja meg az erőforráscsoport nevét egy tetszés szerinti értékre cserélve <your-resource-group-name> .

    resource_group="<your-resource-group-name>"
    
    location="<your-resource-group-location>"
    
  2. Hozzon létre egy erőforráscsoportot. Módosítsa a helyet a megfelelőnek látja.

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

Névtér létrehozása

Az Event Grid-névtér egy felhasználó által definiált végpontot biztosít, amelyre az eseményeket közzéteheti. Az alábbi példa létrehoz egy névteret az erőforráscsoportban a Bash használatával az Azure Cloud Shellben. A névtér nevének egyedinek kell lennie, mert egy DNS-bejegyzés része. A névtérnévnek meg kell felelnie a következő szabályoknak:

  • 3–50 karakter hosszúságúnak kell lennie.
  • Regionálisan egyedinek kell lennie.
  • Csak az engedélyezett karakterek a-z, A-Z, 0-9 és -
  • Nem szabad olyan fenntartott kulcsszavas előtagokkal kezdeni, mint a Microsoft, Systemvagy EventGrid.
  1. Deklaráljon egy változót az Event Grid-névtér nevének tárolásához. Adja meg a névtér nevét egy tetszés szerinti értékre cserélve <your-namespace-name> .

    namespace="<your-namespace-name>"
    
  2. Hozzon létre egy névteret. Előfordulhat, hogy módosítani szeretné azt a helyet, ahol az üzembe lett helyezve.

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

Névtértéma létrehozása

Hozzon létre egy témakört, amely a névtérvégponton közzétett összes esemény tárolására szolgál.

  1. Deklaráljon egy változót a névtértéma nevének tárolásához. Adja meg a névtér témakörének nevét egy tetszés szerinti értékre cserélve <your-topic-name> .

    topic="<your-topic-name>"
    
  2. A névtér témakörének létrehozása:

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

Új Event Hubs-erőforrás létrehozása

Hozzon létre egy Event Hubs-erőforrást, amely a névtér témakör leküldéses kézbesítési előfizetésének kezelőhelyeként szolgál.

  1. Deklaráljon egy változót az Event Hubs névtér nevének tárolásához.

    eventHubsNamespace="<your-event-hubs-namespace-name>"
    
  2. Event Hubs-névtér létrehozása.

    az eventhubs namespace create --resource-group $resource_group --name $eventHubsNamespace --location $location  
    
  3. Deklaráljon egy változót az eseményközpont nevének tárolásához.

    eventHubsEventHub="<your-event-hub-name>"
    
  4. Futtassa a következő parancsot egy eseményközpont létrehozásához a névtérben.

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

Események továbbítása az Event Hubsba felügyelt identitás használatával

Ha felügyelt identitással szeretne eseményeket továbbítani az Event Hubs-névtér eseményközpontjaiba, kövesse az alábbi lépéseket:

  1. A rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás engedélyezése: névterek. Olvassa el a következő szakaszt, amelyből megtudhatja, hogyan engedélyezheti a felügyelt identitást az Azure CLI használatával.
  2. Adja hozzá az identitást az Azure Event Hubs-adatküldő szerepkörhöz az Event Hubs-névtéren, és olvassa tovább a következő szakaszt a szerepkör-hozzárendelés hozzáadásának módjához.
  3. Engedélyezze a megbízható Microsoft-szolgáltatások engedélyezését, hogy megkerülje ezt a tűzfalbeállítást az Event Hubs-névtéren.
  4. Konfigurálja az eseményközpontot végpontként használó esemény-előfizetést a rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás használatára.

Felügyelt identitás engedélyezése az Event Grid-névtérben

A rendszer által hozzárendelt felügyelt identitás engedélyezése az Event Grid-névtérben.

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

Szerepkör-hozzárendelés hozzáadása az Event Hubsban a felügyelt Event Grid-identitáshoz

  1. Az Event Grid névtérrendszer felügyelt identitásnév-azonosítóját kérje le.

    principalId=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query identity.principalId -o tsv)
    
  2. Az Event Hubs eseményközpont erőforrás-azonosítóját kéri le.

    eventHubResourceId=$(az eventhubs eventhub show --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub --query id -o tsv)
    
  3. Szerepkör-hozzárendelés hozzáadása az Event Hubsban az Event Grid rendszer által felügyelt identitáshoz.

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

Esemény-előfizetés létrehozása

Hozzon létre egy új leküldéses kézbesítési esemény-előfizetést.

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\"}}}}}}"

Események küldése a témakörbe

Most küldjön egy mintaeseményt a névtér témakörébe az ebben a szakaszban ismertetett lépések végrehajtásával.

Névtér hozzáférési kulcsok listázása

  1. Kérje le a létrehozott névtérhez társított hozzáférési kulcsokat. Az egyik használatával hitelesítheti magát az események közzétételekor. A kulcsok listázásához először a teljes névtér erőforrás-azonosítóját kell megadnia. A lekéréshez futtassa a következő parancsot:

    namespace_resource_id=$(az eventgrid namespace show -g $resource_group -n $namespace --query "id" --output tsv)
    
  2. Kérje le az első kulcsot a névtérből:

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

Esemény közzététele

  1. Kérje le a névtér állomásnevét. A névtér HTTP-végpontjának megírására használja, amelybe az eseményeket küldi. A következő műveletek először az API-verzióval 2023-06-01-previewvoltak elérhetők.

    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. Hozzon létre egy CloudEvents-kompatibilis mintaeseményt:

    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"}} '
    

    Az data elem az esemény hasznos adatai. Bármilyen, megfelelően formált JSON megadható ebben a mezőben. Az eseményben használható tulajdonságokról (más néven környezetattribútumokról) a CloudEvents specifikációiban talál további információt.

  3. A CURL használatával küldje el az eseményt a témakörnek. A CURL egy olyan segédprogram, amely HTTP-kéréseket küld.

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

    Lépjen az Event Hubs Névtér lapjára az Azure Portalon, frissítse a lapot, és ellenőrizze, hogy a diagram bejövő üzenetszámlálója azt jelzi-e, hogy egy esemény érkezett.

    Képernyőkép az Eseményközpont oldalról, amelyen egy eseményt megjelenítő diagram látható.

Következő lépések

Ebben a cikkben létrehozta és konfigurálta az Event Grid-névteret és az Event Hubs-erőforrásokat. Az események eseményközpontból való fogadására vonatkozó részletes útmutatásért tekintse meg az alábbi oktatóanyagokat: