Rövid útmutató: Egyéni események átirányítása Egy Azure-függvényhez az Event Grid használatával
Az Azure Event Grid egy esemény-útválasztási szolgáltatás a felhő számára. Az Azure Functions az egyik támogatott eseménykezelő.
Ebben a rövid útmutatóban az Azure Portalon hozhat létre egyéni témakört, feliratkozhat az egyéni témakörre, és aktiválhatja az eseményt az eredmény megtekintéséhez. Az eseményeket egy Azure-függvénynek küldi el.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Függvény létrehozása Event Grid-eseményindítóval a Visual Studio Code használatával
Ebben a szakaszban a Visual Studio Code használatával hozhat létre egy Event Grid-eseményindítóval rendelkező függvényt.
Előfeltételek
Függvény létrehozása
Nyissa meg a Visual Studio Code-ot.
A bal oldali sávon válassza az Azure-t.
A bal oldali panel MUNKATERÜLET szakaszában válassza a parancssávOn az Azure Functions gombot, majd válassza a Függvény létrehozása lehetőséget.
Jelölje ki azt a mappát, ahová menteni szeretné a függvénykódot.
Az Új projekt létrehozása parancs nyelvhez válassza a C#, majd az Enter billentyűt.
.NET-futtatókörnyezet esetén válassza a .NET 8.0 Izolált LTS lehetőséget, majd válassza az Enter billentyűt.
A függvény sablonja esetén válassza az Azure Event Grid-eseményindítót, majd az Enter billentyűt.
Függvénynévként adja meg a függvény nevét, majd válassza az Enter billentyűt.
Névtér esetén adja meg a függvény névterének nevét, majd válassza az Enter billentyűt.
Nyissa meg a projektet az aktuális ablakban vagy egy új ablakban, vagy vegye fel egy munkaterületre.
Várja meg, amíg a függvény létrejön. A függvény létrehozásának állapota a jobb alsó sarokban jelenik meg.
Tekintse meg a kódot a YourFunctionName.cs fájlban, különösen a metódusban
Run
. Az adatokat egy naplózó használatával nyomtatja ki.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
A függvény üzembe helyezése az Azure-ban
Válassza az Azure gombot a bal oldali sávon, ha az Azure-ablaktábla még nincs megnyitva.
Vigye az egérmutatót a projekt fölé, és válassza az Üzembe helyezés az Azure-ban gombot.
A parancskatalógus legördülő listájában válassza az + Új függvényalkalmazás létrehozása lehetőséget, majd válassza az Enter billentyűt.
A Név mezőben adjon meg egy globálisan egyedi nevet az új függvényalkalmazásnak, majd válassza az Enter billentyűt.
Futtatókörnyezeti verem esetén válassza a .NET 8 Izolálva lehetőséget.
Az Azure-erőforrások helyének megadásához válasszon ki egy Önhöz közeli régiót.
A függvényalkalmazás létrehozásának állapota az alsó panel AZURE lapján jelenik meg. A függvényalkalmazás létrehozása után megjelenik a helyileg létrehozott függvény üzembe helyezésének állapota a függvényalkalmazásban.
Miután az üzembe helyezés sikeres volt, bontsa ki a Függvényalkalmazás létrehozása sikeres üzenetet, és kattintson a Kattintás gombra az erőforrás megtekintéséhez. Győződjön meg arról, hogy a függvény ki van jelölve a bal oldali panel RESOURCES szakaszában.
Kattintson a jobb gombbal a függvényre, majd válassza a Megnyitás a portálon lehetőséget.
Szükség esetén jelentkezzen be az Azure-ba, és győződjön meg arról, hogy megjelenik a Függvényalkalmazás lap a függvényhez.
Az alsó panelen válassza ki a függvényt.
Váltson a Naplók lapra. Tartsa nyitva ezt a lapot, hogy a naplózott üzenetek megjelenjenek, amikor eseményt küld egy Event Grid-témakörbe az oktatóanyag későbbi részében.
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.
A böngészőablak új lapján jelentkezzen be az Azure Portalra.
A témakör keresősávján keresse meg az Event Grid-témaköröket, majd válassza az Event Grid-témaköröket.
A Témakörök lapon válassza a + Létrehozás lehetőséget a parancssávon.
A Témakör létrehozása panelen kövesse az alábbi lépéseket:
Előfizetés esetén válassza ki az Azure-előfizetését.
Erőforráscsoport esetén válassza ki ugyanazt az erőforráscsoportot az előző lépésekből.
A Név mezőbe adjon meg egy egyedi nevet az egyéni témakörhöz. A témakör nevének egyedinek kell lennie, mert egy DNS-bejegyzés jelöli.
Ne használja a példaképben látható nevet. Ehelyett hozzon létre egy saját nevet. 3-50 karakter hosszúságúnak kell lennie, és csak az a-z, A-Z, 0-9 és kötőjelet (
-
) kell tartalmaznia.Régió esetén válassza ki az Event Grid-témakör helyét.
Válassza az Áttekintés + létrehozás lehetőséget.
A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget.
Az egyéni témakör létrehozása után az Erőforrás megnyitása hivatkozásra kattintva nyissa meg a témakör Event Grid-témakör lapját.
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 az eseményeket.
Az egyéni témakör Event Grid-témakör lapján válassza az eszköztár + Esemény-előfizetés lehetőséget.
Az Esemény-előfizetés létrehozása panelen kövesse az alábbi lépéseket:
A Név mezőben adja meg az esemény-előfizetés nevét.
Eseményséma esetén válassza a Cloud Event Schema v1.0 lehetőséget.
Végponttípus esetén válassza az Azure-függvényt.
Válassza a Végpont konfigurálása lehetőséget.
Az Azure-függvény kiválasztása panelen kövesse az alábbi lépéseket:
Előfizetés esetén válassza ki a függvényt tartalmazó Azure-előfizetést.
Az Erőforráscsoport esetében válassza ki a függvényt tartalmazó erőforráscsoportot.
Függvényalkalmazás esetén válassza ki a függvényalkalmazást.
Függvény esetén válassza ki a függvényt a függvényalkalmazásban.
Válassza a Kiválasztás megerősítése lehetőséget.
Ez a lépés nem kötelező, de éles forgatókönyvekhez ajánljuk. Az Esemény-előfizetés létrehozása panelen lépjen a További szolgáltatások lapra, és állítsa be a kötegenkénti max. események és az előnyben részesített kötegméret értékeit kilobájtban.
A kötegelés nagy átviteli sebességet biztosíthat. Kötegenkénti max. események esetén adja meg az előfizetés által a kötegbe belefoglalt események maximális számát. A kilobájtban megadott előnyben részesített kötegméret a kötegméret előnyben részesített felső határát állítja be, de túlléphető, ha egyetlen esemény nagyobb ennél a küszöbértéknél.
Az Esemény-előfizetés létrehozása panelen válassza a Létrehozás lehetőséget.
Esemény elküldése a témakörbe
Most aktiváljon egy eseményt, hogy lássa, az Event Grid hogyan osztja el az üzenetet a végponton. Az Azure CLI vagy az Azure PowerShell használatával teszteseményt küldhet az egyéni témakörbe. Általában egy alkalmazás vagy egy Azure-szolgáltatás küldi el az eseményadatokat.
Az első példa az Azure CLI-t használja. Lekéri az egyéni témakör URL-címét és kulcsát, valamint a mintaesemény-adatokat. A topicname
helyett használja az egyéni témakör nevét. Ez mintául szolgáló eseményadatokat hoz létre.
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 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.
Azure CLI
Az Azure Portalon válassza a Cloud Shellt. Ha Azure PowerShell-módban van, válassza a Váltás Bashre lehetőséget.
Állítsa be a
topicname
parancsokban használt ésresourcegroupname
változókat.Cserélje le
TOPICNAME
az Event Grid-témakör nevére.topicname="TOPICNAME"
Cserélje le
RESOURCEGROUPNAME
az Event Grid-témakört tartalmazó Azure-erőforráscsoport nevére.resourcegroupname="RESOURCEGROUPNAME"
A témakör végpontjának lekéréséhez használja az alábbi parancsot. A parancs másolása és beillesztése után futtassa a témakör nevét és az erőforráscsoport nevét.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)
Az egyéni témakör kulcsának lekéréséhez használja az alábbi parancsot. A parancs másolása és beillesztése után futtassa a témakör nevét és az erőforráscsoport nevét.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)
Másolja ki az alábbi utasítást az eseménydefinícióval, majd válassza az Enter billentyűt.
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"} ]'
Futtassa a következő cURL-parancsot az esemény közzétételéhez:
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Győződjön meg arról, hogy a függvény üzenete megjelenik a függvény Naplók lapján az Azure Portalon.
Azure PowerShell
A második példa az Azure PowerShell használatával végez hasonló lépéseket.
Az Azure Portalon válassza a Cloud Shellt (vagy nyissa meg az Azure Cloud Shell oldalát). A Cloud Shell ablakának bal felső sarkában válassza a Váltás PowerShellre lehetőséget.
Állítsa be a következő változókat. Az egyes parancsok másolása és beillesztése után futtassa a témakör nevét és az erőforráscsoport nevét.
$resourceGroupName = "RESOURCEGROUPNAME"
$topicName = "TOPICNAME"
Futtassa a következő parancsokat a végpont és a témakör kulcsainak lekéréséhez:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
Készítse elő az eseményt. Másolja és futtassa az alábbi utasításokat a Cloud Shell ablakában:
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"
Az esemény elküldéséhez használja a
Invoke-WebRequest
parancsmagot:Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Győződjön meg arról, hogy a függvény üzenete megjelenik a függvény Naplók lapján az Azure Portalon.
Ellenőrizze, hogy a függvény megkapta-e az eseményt
Aktiválta az eseményt, és az Event Grid elküldte az üzenetet a feliratkozáskor konfigurált végpontnak. Most ellenőrizheti, hogy a függvény megkapta-e.
A függvény Monitorozás lapján keressen egy meghívást.
Válassza ki a meghívást a részletek megjelenítéséhez.
A jobb oldali ablaktáblán a Naplók lapon is megtekintheti a naplózott üzeneteket, amikor eseményeket küld a témakör végpontjára.
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 törölje a cikkben létrehozott erőforrásokat.
A bal oldali menüben válassza az Erőforráscsoportok lehetőséget.
Másik lehetőségként válassza a bal oldali menü Minden szolgáltatás elemét, majd az Erőforráscsoportok lehetőséget.
Válassza ki az erőforráscsoportot a panel megnyitásához.
Az eszköztáron válassza az Erőforráscsoport törlése lehetőséget.
Erősítse meg a törlést az erőforráscsoport nevének megadásával, majd válassza a Törlés lehetőséget.
A Cloud Shell ablak az Erőforráscsoportok lapon megjelenő másik erőforráscsoportot hozta létre és használta. Törölje ezt az erőforráscsoportot, ha később nem tervezi használni a Cloud Shell ablakot.
Kapcsolódó tartalom
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:
- Bevezetés az Event Grid használatába
- Azure Blob Storage-események átirányítása egyéni webvégpontra
- Virtuális gépek módosításainak monitorozása az Azure Event Grid és a Logic Apps segítségével
- Big Data típusú adatok streamelése adattárházba
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: