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


Rövid útmutató: Egyéni események átirányítása üzenetsorhoz az Event Grid és 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ényeken keresztül. Az Event Grid eseményeket biztosít a támogatott eseménykezelőknek, és az Azure Queue Storage is ilyen.

Ebben a rövid útmutatóban az Azure CLI használatával hozhat létre egyéni Event Grid-témakört és egy Queue Storage-előfizetést ehhez a témakörhöz. Ezután elküldheti a mintaeseményeket az egyéni témakörnek, és ellenőrizheti, hogy ezek az események egy üzenetsorba kerülnek-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, és egy Azure-erőforráscsoportba kell őket 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 westus2 nevű erőforráscsoportot a gridResourceGroup helyen.

Válassza a Cloud Shell megnyitása lehetőséget az Azure Cloud Shell jobb oldali panelen való megnyitásához. Kattintson a Másolás gombra a parancs másolásához, illessze be a Cloud Shellbe, majd az Enter billentyűt választva futtassa a parancsot.

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

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

    topicname="<TOPIC NAME>"
    
  2. Futtassa a következő parancsot a témakör létrehozásához:

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

Üzenetsor létrehozása

Mielőtt feliratkozik az egyéni témakörre, hozza létre az eseményüzenet végpontját. Létrehoz egy üzenetsort az események gyűjtéséhez.

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

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Futtassa a következő parancsokat egy tárfió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 egyéni témakörre, és átadja a végpont üzenetsorának erőforrás-azonosítóját. Az Azure CLI-vel végpontként adja át az üzenetsor-azonosítót. A végpont a következő formátumban van:

/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. Összeállítja az üzenetsor-azonosítót, é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.

A parancs futtatása előtt cserélje le a lejárati dátum (<yyyy-mm-dd>) helyőrzőt az év, hónap és nap tényleges értékére.

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 az üzenetsorhoz. Vegye figyelembe, hogy az előfizetéshez lejárati dátum tartozik.

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

"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

Esemény aktiválása annak megtekintéséhez, hogy az Event Grid hogyan osztja el az üzenetet a végponton. Először szerezze be az egyéni témakör URL-címét és kulcsát:

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 cikkben szereplő egyszerűség kedvéért mintaesemény-adatokat használ az egyéni témakörbe való küldéshez. Általában egy alkalmazás vagy egy Azure-szolgáltatás küldi el az eseményadatokat.

A cURL eszköz 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

Lépjen az üzenetsorra az Azure Portalon, és figyelje meg, hogy az Event Grid elküldte ezt a három eseményt az üzenetsorba.

Képernyőkép az Event Gridtől az üzenetsorban fogadott üzenetek listájáról.

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

Ha folytatni szeretné az esemény használatát, ne törölje a cikkben létrehozott erőforrásokat. Ellenkező esetben az erőforrások törléséhez használja a következő parancsot:

az group delete --name gridResourceGroup

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 Eseményrács eseményeinek különböző programozási nyelvek használatával történő közzétételéről és az események felhasználásáról az alábbi példákban tájékozódhat: