Event Grid-eseményindítók és kötések használata az Azure Functionsben
Az Azure Functions beépített integrációt biztosít az Azure Event Griddel triggerek és kötések használatával. Ez a cikk bemutatja, hogyan konfigurálhatja és értékelheti helyileg az Event Grid-eseményindítót és a kötéseket. Az Event Grid-eseményindítóról, valamint a kimeneti kötések definícióiról és példáiról az alábbi referenciacikkek egyikében talál további információt:
- Az Azure Event Grid-kötések áttekintése
- Azure Event Grid-eseményindító az Azure Functionshez
- Azure Event Grid kimeneti kötés az Azure Functionshez
Esemény-előfizetés létrehozása
Az Event Grid HTTP-kéréseinek fogadásához előfizetésre van szüksége az Event Grid által létrehozott eseményekhez. Az esemény-előfizetések megadják a függvényt meghívó végpont URL-címet. Amikor esemény-előfizetést hoz létre a függvény Integráció lapján az Azure Portalon, az URL-címet adja meg Önnek. Amikor programozott módon hoz létre egy esemény-előfizetést, vagy amikor az Event Gridből hozza létre az esemény-előfizetést, meg kell adnia a végpontot. A végpont URL-címe tartalmaz egy rendszerkulcsot, amelyet a Functions-rendszergazda REST API-jaitól kell beszereznie.
A webhook végpontJÁNAK URL-címének lekérése
Az Event Grid által aktivált függvény URL-végpontja a Functions-futtatókörnyezet verziójától függ. Az alábbi példa a verzióspecifikus URL-mintát mutatja:
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
Feljegyzés
A Blob Storage-eseményindítónak van egy verziója, amely esemény-előfizetéseket is használ. Az ilyen típusú Blob Storage-eseményindító végponti /runtime/webhooks/blobs
URL-címe elérési útja, míg az Event Grid-eseményindító elérési útja az lenne /runtime/webhooks/EventGrid
. A blobok feldolgozási lehetőségeinek összehasonlítása: Trigger egy blobtárolón.
A rendszerkulcs beszerzése
A felépítendő URL-végpont tartalmaz egy rendszerkulcs-értéket. A rendszerkulcs egy, az Event Grid-webhookra jellemző engedélyezési kulcs, amelyet egy Event Grid-eseményindító végponti URL-címére irányuló kérésnek tartalmaznia kell. A következő szakasz a rendszerkulcs lekérését ismerteti.
A függvényalkalmazás főkulcsát a függvényalkalmazás>kulcsaiból is lekérheti a portálon.
Figyelemfelhívás
A főkulcs rendszergazdai hozzáférést biztosít a függvényalkalmazáshoz. Ne ossza meg ezt a kulcsot harmadik felekkel, és ne ossza meg natív ügyfélalkalmazásokban.
További információ: A hozzáférési kulcsok használata az Azure Functionsben.
A rendszerkulcsot a függvényalkalmazásból az alábbi rendszergazdai API-k (HTTP GET) használatával szerezheti be:
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
Ez a REST API egy rendszergazdai API, ezért a függvényalkalmazás főkulcsára van szükség. Ne keverje össze a rendszerkulcsot (eseményrács-triggerfüggvény meghívásához) a fő kulccsal (a függvényalkalmazás felügyeleti feladatainak elvégzéséhez). Amikor előfizet egy Event Grid-témakörre, mindenképpen használja a rendszerkulcsot.
Íme egy példa a rendszerkulcsot biztosító válaszra:
{
"name": "eventgridextensionconfig_extension",
"value": "{the system key for the function}",
"links": [
{
"rel": "self",
"href": "{the URL for the function, without the system key}"
}
]
}
A feliratkozás létrehozása
Esemény-előfizetést az Azure Portalon vagy az Azure CLI használatával hozhat létre.
Az Azure Portalon az Event Grid-eseményindítóval fejlesztett függvények esetében válassza az Integráció lehetőséget, majd az Event Grid-eseményindítót , majd az Event Grid-előfizetés létrehozása lehetőséget.
Ha ezt a hivatkozást választja, a portál megnyitja az Esemény-előfizetés létrehozása lapot, amelyen már meg van adva az aktuális triggervégpont.
További információ az előfizetések Azure Portallal történő létrehozásáról: Egyéni esemény létrehozása – Azure Portal az Event Grid dokumentációjában.
Az előfizetés létrehozásával kapcsolatos további információkért tekintse meg a Blob Storage rövid útmutatóját vagy az Event Grid egyéb rövid útmutatóit.
Helyi tesztelés megtekintő webalkalmazással
Az Event Grid-eseményindító helyi teszteléséhez le kell kérnie az Event Grid HTTP-kéréseit a felhőben található forrásból a helyi gépre. Ennek egyik módja, ha online rögzíti a kéréseket, és manuálisan újraküldi őket a helyi gépen:
- Eseményüzeneteket rögzítő megjelenítő webalkalmazás létrehozása.
- Hozzon létre egy Event Grid-előfizetést , amely eseményeket küld a megtekintő alkalmazásnak.
- Hozzon létre egy kérést , és másolja a kérelem törzsét a megtekintő alkalmazásból.
- Manuálisan tegye közzé a kérést az Event Grid-eseményindító függvény localhost URL-címére.
HTTP-közzétételi kérés küldéséhez HTTP-teszteszközre van szükség. Ügyeljen arra, hogy olyan eszközt válasszon, amely biztonságosan tartja az adatokat. További információ: HTTP-teszteszközök.
Ha végzett a teszteléssel, ugyanazt az előfizetést használhatja éles környezetben a végpont frissítésével. Használja az az eventgrid event-subscription update
Azure CLI parancsot.
Megtekintő webalkalmazás létrehozása
Az eseményüzenetek rögzítésének egyszerűsítése érdekében üzembe helyezhet egy előre elkészített 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.
A megoldásnak az előfizetésébe való telepítéséhez válassza az Üzembe helyezés az Azure-ban lehetőséget. Az Azure Portalon adjon meg értékeket a paraméterekhez.
Az üzembe helyezés befejezése 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 hely látható, de még nem lett közzétéve esemény.
Event Grid-előfizetés létrehozása
Hozzon létre egy tesztelni kívánt típusú Event Grid-előfizetést, és adja meg a webalkalmazás URL-címét az eseményértesítés végpontjaként. A webalkalmazás végpontjának az /api/updates/
utótagot kell tartalmaznia. A teljes URL-cím tehát https://<your-site-name>.azurewebsites.net/api/updates
Az előfizetések Azure Portallal történő létrehozásáról az Egyéni esemény létrehozása – Azure Portal című témakörben olvashat az Event Grid dokumentációjában.
Kérés létrehozása
Esemény aktiválása, amely HTTP-forgalmat generál a webalkalmazás végpontja felé. Ha például blobtároló-előfizetést hozott létre, töltsön fel vagy töröljön egy blobot. Amikor megjelenik egy kérés a webalkalmazásban, másolja ki a kérelem törzsét.
Az előfizetés érvényesítési kérése először érkezik meg; figyelmen kívül hagyja az érvényesítési kéréseket, és másolja ki az eseménykérelmet.
A kérés manuális közzététele
Futtassa helyileg az Event Grid függvényt. A Content-Type
fejléceket és aeg-event-type
a fejléceket manuálisan kell beállítani, míg az összes többi érték alapértelmezettként hagyható.
HTTP POST-kérés létrehozása a HTTP-teszteszköz használatával:
Content-Type: application/json
Fejléc beállítása.aeg-event-type: Notification
Fejléc beállítása.Illessze be a RequestBin-adatokat a kérelem törzsébe.
HTTP POST-kérés küldése a végpontnak, amely manuálisan indítja el az Event Grid-eseményindítót.
A functionName
paraméternek az attribútumban FunctionName
megadott névnek kell lennie.
Az Event Grid eseményindító függvény az alábbi példához hasonló naplókat hajt végre és jelenít meg:
Következő lépések
Az Event Grid és a Functions szolgáltatással kapcsolatos további információkért tekintse meg az alábbi cikkeket: