Rövid útmutató: Egyéni események átirányítása webes végpontra az Azure CLI és az Event Grid használatával

Az Azure Event Grid egy felhőalapú eseménykezelési szolgáltatás. Ebben a cikkben létrehozunk egy egyéni témakört az Azure CLI-vel, feliratkozunk az egyéni témakörre, majd elindítjuk az eseményt az eredmény megtekintéséhez.

Általában olyan végpontoknak szoktunk eseményeket küldeni, amelyek eseményadatokat dolgoznak fel és műveleteket hajtanak végre. A cikk egyszerűsítése érdekében azonban az eseményeket egy olyan webalkalmazásnak küldjük el, amely az üzenetek gyűjtésével és megjelenítésével foglalkozik.

A folyamat végén látni fogja, hogy a rendszer elküldte az eseményadatokat a webalkalmazásnak.

Screenshot showing the Event Grid Viewer sample with a sample event.

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

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

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. Ha a Kipróbálás lehetőséget választja, a jobb oldali panelen megjelenik az Azure Cloud Shell ablak. Ezután a Másolás gombra kattintva másolja a parancsot, és illessze be az Azure Cloud Shell ablakába, majd nyomja le az ENTER billentyűt a parancs futtatásához. Tetszés szerint módosítsa az erőforráscsoport nevét és helyét.

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 létrehozza az egyéni témakört az erőforráscsoportban a Bash használatával az Azure Cloud Shellben. A <your-topic-name> elemet a témakör egyedi nevére cserélje le. Az egyéni témakör nevének egyedinek kell lennie, mert a tartománynévrendszer (DNS) bejegyzés része. Emellett 3–50 karakter hosszúságúnak kell lennie, és csak az a-z, A-Z, 0-9 és "-" értékeket kell tartalmaznia.

  1. Másolja ki a következő parancsot, adja meg a témakör nevét, majd nyomja le az ENTER billentyűt a parancs futtatásához.

    topicname=<your-topic-name>
    
  2. az eventgrid topic create A parancs használatával hozzon létre egy egyéni témakört.

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

Üzenetvégpont létrehozása

Az egyéni témakörre való feliratkozás előtt hozzuk létre az eseményüzenet végpontját. A végpont általában az eseményadatok alapján hajt végre műveleteket. A rövid útmutató egyszerűsítése érdekében üzembe kell helyeznie egy előre összeállított webalkalmazást , amely megjeleníti az eseményüzeneteket. Az üzembe helyezett megoldás egy App Service-csomagot, egy App Service-webalkalmazást és egy, a GitHubról származó forráskódot tartalmaz.

  1. Másolja ki a következő parancsot, adja meg a webalkalmazás nevét (Event Grid Viewer-minta), majd nyomja le az ENTER billentyűt a parancs futtatásához. A <your-site-name> elemet a webalkalmazás egyedi nevére cserélje le. A webalkalmazás nevének egyedinek kell lennie, mert a DNS-bejegyzés része.

    sitename=<your-site-name>
    
  2. Futtassa a az deployment group create webalkalmazás üzembe helyezését egy Azure Resource Manager-sablonnal.

    az deployment group create \
      --resource-group gridResourceGroup \
      --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
      --parameters siteName=$sitename hostingPlanName=viewerhost
    

Az üzembe helyezés végrehajtása eltarthat néhány percig. A sikeres üzembe helyezést követően tekintse meg a webalkalmazást, hogy meggyőződjön annak működéséről. Egy webböngészőben navigáljon a következő helyre: https://<your-site-name>.azurewebsites.net.

A helynek megjelenített üzenetek nélkül kell megjelennie.

Feliratkozás egyéni témakörre

Előfizethet egy Event Grid-témakörre, amelyből megtudhatja, hogy az Event Grid mely eseményeket szeretné nyomon követni, és hová szeretné elküldeni ezeket az eseményeket. Az alábbi példa feliratkozik a létrehozott egyéni témakörre, és az eseményértesítés végpontjaként átadja a webalkalmazásából származó URL-címet.

A webalkalmazás végpontjának az /api/updates/ utótagot kell tartalmaznia.

  1. Másolja ki a következő parancsot, cserélje le $sitename az előző lépésben létrehozott webalkalmazás nevére, majd nyomja le az ENTER billentyűt a parancs futtatásához.

    endpoint=https://$sitename.azurewebsites.net/api/updates
    
  2. Futtassa a következő parancsot a létrehozott témakör erőforrás-azonosítójának lekéréséhez.

    topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
    
  3. Futtassa a következő parancsot az egyéni témakörhöz tartozó előfizetés létrehozásához a végpont használatával.

    az eventgrid event-subscription create \
      --source-resource-id $topicresourceid \
      --name demoViewerSub \
      --endpoint $endpoint      
    

    Tekints meg újra a webalkalmazást, ahol láthatja, hogy az fogadta az előfizetés érvényesítési eseményét. Az eseményadatok kibontásához kattintson a szem ikonra. Az Event Grid elküldi az érvényesítési eseményt, így a végpont megerősítheti, hogy eseményadatokat akar kapni. A webalkalmazás az előfizetés érvényesítéséhez szükséges kódot tartalmaz.

    View the subscription event in Azure Event Grid Viewer

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. Az alábbi példa mintául szolgáló eseményadatokat hoz létre:

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

A JSON data eleme az esemény hasznos adata. Bármilyen, megfelelően formált JSON megadható ebben a mezőben. A speciális útválasztáshoz és szűréshez használhatja a tárgy mezőt is.

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

curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

Ön kiváltotta az eseményt, az Event Grid pedig elküldte az üzenetet a feliratkozáskor konfigurált végpontnak. Tekintse meg a webalkalmazást az imént elküldött esemény megtekintéséhez.

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]

Clean up resources

Ha tovább kívánja használni az eseményt vagy az eseménynapló alkalmazást, 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

További 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.