A kód igény szerinti futtatása az Azure Functions használatával

Befejeződött

Most, hogy létrehoztunk egy függvényalkalmazást, nézzük meg, hogyan hozhat létre, konfigurálhat és hajthat végre függvényeket. A függvényt a következő gyakorlatban hajtjuk végre, így ebben a leckében nem kell semmilyen feladatot elvégeznie.

Triggers

A függvények eseményvezéreltek, vagyis egy eseményre reagálva futnak. A függvényt elindító esemény típusát eseményindítónak nevezzük. Minden függvényt pontosan egy eseményindítóval kell konfigurálni.

A függvények végrehajtását HTTP-kérésekkel, ütemezett időzítővel és az alábbi Azure-szolgáltatások eseményeiből indíthatja el:

Azure-szolgáltatás Eseményindító leírása
Blob Storage Függvényt indít el új vagy frissített blob észlelésekor.
Azure Cosmos DB Függvényt indít el beszúrás vagy frissítés észlelésekor.
Event Grid Függvényt indít el, amikor esemény érkezik az Event Gridből.
Event Hubs Elindít egy függvényt, amikor esemény érkezik az Event Hubstól.
Queue Storage Függvényt indít el, amikor új elem érkezik egy várakozási sorba. A várakozó üzenetet a függvény bemeneteként adja át.
Service Bus Függvényt indít el egy Service Bus-sorból érkező üzenetre reagálva.

Kötések

A kötések deklaratív módon kapcsolhatók össze adatokkal és szolgáltatásokkal a függvényhez. A kötések különböző adatforrásokkal működnek együtt, ami azt jelenti, hogy nem kell írnia a kódot a függvényben az adatforrásokhoz való csatlakozáshoz és a kapcsolatok kezeléséhez. Ezt a feladatot a platform oldja meg ön helyett a kötés kódjának részeként. Minden kötésnek van egy iránya: a kód beolvassa az adatokat a bemeneti kötésekből, és adatokat ír a kimeneti kötésekbe. Minden függvény nulla vagy több kötéssel rendelkezhet a függvény által feldolgozott be- és kimenő adatok kezelésére.

Az eseményindítók olyan bemeneti kötések, amelyek bizonyos kód végrehajtását kezdeményezik.

Az Azure számos kötést kínál a különféle tárolási és üzenetküldési szolgáltatásokhoz való csatlakozáshoz.

Példa kötés definiálása

Egy példán mutatjuk be egy függvény konfigurálását egy bemeneti kötéssel (eseményindítóval) és egy kimeneti kötéssel. Tegyük fel, hogy új sort szeretnénk írni az Azure Table Storage-ba, amikor új üzenet jelenik meg az Azure Queue Storage-ban. Ez a forgatókönyv egy Azure Queue Storage-eseményindító és egy Azure Table Storage kimeneti kötés használatával valósítható meg.

Az alábbi kódrészlet az ehhez a helyzethez való function.json fájl.

{
  "bindings": [
    {
      "name": "order",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "myqueue-items",
      "connection": "MY_STORAGE_ACCT_APP_SETTING"
    },
    {
      "name": "$return",
      "type": "table",
      "direction": "out",
      "tableName": "outTable",
      "connection": "MY_TABLE_STORAGE_ACCT_APP_SETTING"
    }
  ]
}

A JSON-konfiguráció azt határozza meg, hogy a függvény akkor aktiválódik, amikor egy üzenet bekerül egy myqueue-items nevű üzenetsorba. A függvény visszatérési értéke ezután az OutTable-ba lesz írva az Azure Table Storage-ban.

A PowerShell-függvények esetében a kimeneti kötések explicit módon íródnak a Push-OutputBinding parancsmaggal.

Ez a példa egyszerű módon mutatja be a kötések függvényekhez való konfigurálását. A kimenetet e-mailként módosíthatjuk SendGrid-kötéssel, vagy egy eseményt egy Service Busra, hogy értesítsük az architektúránk egy másik összetevőjét. Akár több kimeneti kötést is létrehozhatunk az adatok különböző szolgáltatásokba való leküldéséhez.

Tipp.

A function.json tartalmának megtekintéséhez és szerkesztéséhez az Azure Portal kezdőlapján válassza ki a függvényalkalmazást, majd a jobb oldali panelen válassza a JSON nézetet. Az Erőforrás JSON nézete megjeleníti az erőforrás-azonosítót és a szerkeszthető JSON-kódot. A JSON nézet bezárásához válassza az X lehetőséget a panel jobb felső sarkában.

A Functions által támogatott nyelvek közül nem minden használja a function.json fájlt a függvények definiálásához.

Függvény létrehozása az Azure Portalon

Az Azure Functions előre definiált függvénysablonokkal rendelkezik, amelyek egy adott eseményindító-típuson alapulnak. Ezek a sablonok a választott nyelven megkönnyítik az első függvény létrehozásának megkezdését.

Ez a modul nem támogatott a Functions által támogatott összes nyelv esetében, és maga a portál nem támogatja a Függvények által támogatott összes nyelven a függvények létrehozását.

A függvények definiálásához a function.json fájlt használó támogatott nyelvek esetében ezeket a függvényeket közvetlenül az Azure Portalon hozhatja létre és szerkesztheti. Ezek a portál által támogatott nyelvek a következők: JavaScript, PowerShell, Python és C# szkript (.csx). A függvényeket közvetlenül a kódban definiáló nyelveket a portálon kívül kell fejleszteni, és üzembe kell helyezni az Azure-ban. Ezek a nem portális támogatott nyelvek a következők: C#, Java, Python (v2 programozási modell) és JavaScript/TypeScript (Node.js v4 programozási modell).

Függvénysablonok

Amikor létrehozza az első függvényt a portálon, kiválaszthat egy előre definiált eseményindítót a függvényhez. A beállítások alapján az Azure létrehoz egy alapértelmezett kódot és konfigurációs információt, például eseménynapló-bejegyzést hoz létre a bemeneti adatok fogadásakor.

Ha kiválaszt egy sablont a Függvény hozzáadása panelen, egyszerűen elérheti a leggyakoribb fejlesztési környezeteket, eseményindítókat és függőségeket. Amikor függvényt hoz létre az Azure Portalon, több mint 20 sablon közül választhat. A létrehozás után tovább testre szabhatja a kódot.

Ha sablonból hoz létre függvényt, több fájl jön létre, köztük egy konfigurációs fájl, a function.json és egy forráskódfájl, az index.js.

A függvényalkalmazáshoz úgy hozhat létre vagy szerkeszthet függvényeket, hogy a Függvényalkalmazás menü Függvények kategóriájában a Függvények kategóriát választja.

Amikor kiválaszt egy függvényt, amelyet a függvényalkalmazásban hozott létre, megnyílik a Függvény panel. Ha a Függvény menüBen a Kód + Teszt lehetőséget választja, a parancssávon található műveletekhez férhet hozzá a kód teszteléséhez és futtatásához, a végrehajtott módosítások mentéséhez vagy elvetéséhez, illetve a közzétett URL-cím beszerzéséhez. Ha a parancssávon a Tesztelés/Futtatás lehetőséget választja, futtathatja a lekérdezési sztringeket és értékeket tartalmazó kérelmek használati eseteit. A függvény kódmező feletti elérési útja megjeleníti a megnyitott fájl nevét. A legördülő listából kiválaszthat egy adott fájlt, amely teszteli vagy szerkesztheti például a function.json fájlt.

Screenshot of the function code and test editor showing the expanded Test/Run view, with menu options highlighted.

Az előző képen a jobb oldali ablaktáblán a Bemenet és a Kimenet lap látható. A Bemenet lap kiválasztásával létrehozhatja és tesztelheti a függvényt lekérdezési paraméterek hozzáadásával és a lekérdezési sztring értékeinek megadásával. A Kimenet lap megjeleníti a kérés eredményeit.

Az Azure-függvény tesztelése

Miután létrehozott egy függvényt a portálon, tesztelni kell. Két megközelítés létezik:

  • Tesztelés a portálon
  • Manuális futtatás

Tesztelés az Azure Portalon

Függvényeit az Azure Portalon is kényelmesen tesztelheti. Ahogy korábban említettem, az előző képernyőképen. Amikor a Futtatás lehetőséget választja ebben az ablaktáblában, az eredmények automatikusan megjelennek a Kimenet lapon, és megnyílik a Naplók panel az állapot megjelenítéséhez.

Függvény manuális futtatása

A függvény elindítható a konfigurált trigger manuális aktiválásával. Ha például HTTP-eseményindítót használ, használhat egy eszközt, például a Postmant vagy a cURL-t a függvényvégpont URL-címére irányuló HTTP-kérés kezdeményezéséhez, amely a függvénydefinícióból (függvény URL-címének lekérése) érhető el.

Monitorozás és alkalmazás Elemzések irányítópult

A függvények figyelésének lehetősége a fejlesztés során és éles üzemben is nélkülözhetetlen. Az Azure Portal egy monitorozási irányítópultot biztosít, amelyet az alkalmazás Elemzések integrációjának engedélyezésével kapcsolhat be. A Függvényalkalmazás menü Gépház területén válassza az Alkalmazás Elemzések, az Alkalmazás Elemzések bekapcsolása, majd az Alkalmaz lehetőséget. A párbeszédpanelen válassza az Igen lehetőséget. Az Alkalmazás Elemzések irányítópulton gyorsan megtekintheti a függvényműveletek előzményeit az alkalmazás Elemzések által kitöltött időbélyeg, eredménykód, időtartam és műveletazonosító megjelenítésével.

Screenshot showing the HTTP function Application Insights dashboard with function results, corresponding HTTP status codes, and the Monitoring menu items highlighted.

Streamnaplók panel

Miután engedélyezte az Alkalmazás Elemzések az Azure Portalon, hibakeresés céljából hozzáadhat naplózási utasításokat a függvényhez. Az egyes nyelvekhez tartozó metódusok egy "naplózási" objektumot adnak át, amellyel naplóadatokat adhat hozzá a Kód + Teszt panel Naplók paneljéhez egy teszt futtatásakor.

Írjon naplókba a kódból az log objektum metódusával context , amelyet a rendszer átad a kezelőnek. Az alábbi példa az alapértelmezett naplószintre ír (információ):

context.log('Enter your logging statement here');

A következő példában látható módon írjon naplókba a kódból a Write-Host parancsmag használatával:

Write-Host "Enter your logging statement here"

Hibák, hibák, figyelmeztetések és anomáliák

A Függvény menü Vizsgálat kategóriájának metrikáival vagy beállításaival figyelheti a teljesítményt, diagnosztizálhatja a hibákat, vagy több tucat előre definiált munkafüzetet konfigurálhat a függvényalkalmazás kezeléséhez. A kód fordítási hibáitól és figyelmeztetéseitől a használati statisztikákig minden szerepkör szerint.