Megosztás a következőn keresztül:


Rövid útmutató: Egyéni események átirányítása az Azure Queue Storage-ba az Event Griden keresztül az Azure CLI használatával

Az Azure Event Grid egy nagymértékben skálázható és kiszolgáló nélküli eseményszervező, amellyel alkalmazásokat integrálhat események használatával. Az Event Grid eseményeket biztosít a támogatott eseménykezelőknek , és az Azure Queue Storage is ilyen. Ebben a cikkben az Azure CLI-t használja a következő lépésekhez:

  1. Egyéni Event Grid-témakör létrehozása.
  2. Azure Queue-előfizetés létrehozása az egyéni témakörhöz.
  3. Mintaesemények küldése az egyéni témakörbe.
  4. Ellenőrizze, hogy ezek az események az Azure Queue Storage-ba érkeznek-e.

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

Erőforráscsoport létrehozása

Az Event Grid-témakörök Azure-erőforrások, amelyeket egy Azure-erőforráscsoportba kell helyezni. Az erőforráscsoport egy olyan logikai gyűjtemény, amelyben a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.

Hozzon létre egy erőforráscsoportot az az group create paranccsal. A következő példában létrehozunk egy gridResourceGroup nevű erőforráscsoportot a westus2 helyen.

Feljegyzés

A Jobb oldali panelen a Cloud Shell elindításához válassza a CLI-példa melletti Kipróbálás lehetőséget. Kattintson a Másolás gombra a parancs másolásához, illessze be a Cloud Shell ablakába, majd nyomja le az ENTER billentyűt a parancs futtatásához.

az group create --name gridResourceGroup --location westus2

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.

Egyéni témakör létrehozása

Az Event Grid-témakör egy felhasználó által definiált végpontot biztosít, amelybe az eseményeket közzéteheti. Az alábbi példa az erőforráscsoportban létrehozza az egyéni témakört. A <topic_name> elemet cserélje le az egyéni témakör egyedi nevére. Az Event Grid-témakör nevének egyedinek kell lennie, mert egy DNS-bejegyzés jelöli.

  1. Adja meg a témakör nevét.

    topicname="<TOPIC NAME>"
    
  2. A témakör létrehozásához futtassa az alábbi parancsot.

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Queue Storage-tároló létrehozása

Az egyéni témakörre való feliratkozás előtt hozzuk létre az eseményüzenet végpontját. Az események tárolásához létrehozhat egy Queue Storage-tárolót.

  1. Adja meg az Azure Storage-fiók egyedi nevét.

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Futtassa az alábbi parancsokat egy Azure Storage-fiók és egy (névvel ellátott eventqueue) üzenetsor létrehozásához a tárban.

    queuename="eventqueue"
    
    az storage account create -n $storagename -g gridResourceGroup -l westus2 --sku Standard_LRS
    key="$(az storage account keys list -n $storagename --query "[0].{value:value}" --output tsv)"    
    az storage queue create --name $queuename --account-name $storagename --account-key $key
    

Feliratkozás egyéni témakörre

Az alábbi példa feliratkozik a létrehozott témakörre, és átadja a Queue Storage-tároló erőforrás-azonosítóját a végpontnak. Az Azure CLI használatakor a Queue Storage-azonosítót kell megadnia végpontként. A végpont formátuma a következő:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/queueservices/default/queues/<QUEUE NAME>

Az alábbi szkript lekéri az üzenetsor tárfiókjának erőforrás-azonosítóját. Az üzenetsor-tároló azonosítóját hozza létre, és előfizet egy Event Grid-témakörre. A végpontot storagequeue típusúra állítja be, és az üzenetsor azonosítóját használja végpontként.

Fontos

Cserélje le a lejárati dátum helyőrzőt (<yyyy-mm-dd>) egy tényleges értékre. Például: 2022-11-17 a parancs futtatása előtt.

storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name mystoragequeuesubscription \
  --endpoint-type storagequeue \
  --endpoint $queueid \
  --expiration-date "<yyyy-mm-dd>"

Az esemény-előfizetést létrehozó fióknak írási hozzáféréssel kell rendelkeznie a Queue Storage-tárolóhoz. Vegye figyelembe, hogy az előfizetéshez lejárati dátum tartozik.

Ha a REST API használatával hozza létre az előfizetést, a tárfiók azonosítóját és az üzenetsor nevét külön paraméterként kell megadnia.

"destination": {
  "endpointType": "storagequeue",
  "properties": {
    "queueName":"eventqueue",
    "resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
  }
  ...

Esemény elküldése az egyéni témakörbe

Aktiváljunk egy eseményt, és lássuk, hogyan küldi el az üzenetet az Event Grid a végpontnak. Először szükségünk lesz az egyéni témakör URL-címére és kulcsára.

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)

A folyamat leegyszerűsítése érdekében használjon mintául szolgáló eseményadatokat, amelyeket elküldhet az egyéni témakörbe. Egy alkalmazás vagy Azure-szolgáltatás általában eseményadatokat küld el. A CURL egy olyan segédprogram, amely HTTP-kéréseket küld. Ebben a cikkben a CURL használatával küldi el az eseményt az egyéni témakörbe. Az alábbi példa három eseményt küld az Event Grid-témakörnek:

for i in 1 2 3
do
   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
done

A Portalon lépjen a Queue Storage-tárolóhoz, és figyelje meg, hogy az Event Grid elküldte a három eseményt az üzenetsorba.

Screenshot showing the list of messages in the queue that are received from Event Grid.

Az erőforrások eltávolítása

Ha tovább kívánja használni az eseményt, akkor ne törölje a cikkben létrehozott erőforrásokat. Ellenkező esetben a következő paranccsal törölheti a cikkben létrehozott erőforrásokat.

az group delete --name gridResourceGroup

Következő lépések

Most, hogy megismerkedett vele, hogyan hozhat létre témaköröket és eseményfeliratkozásokat, bővebben is tájékozódhat arról, hogy miben nyújthat segítséget az Event Grid:

Az alábbi példákból megtudhatja, hogyan tehet közzé eseményeket az Event Gridből különböző programozási nyelvek használatával, és hogyan használhatja az eseményeket.