Gyakorlat – Függvény helyi létrehozása a Core Tools használatával
Az Azure Functions Core Tools segítségével helyileg fejleszthet függvényeket a saját számítógépén:
- A függvényprojektekhez szükséges fájlok és mappák létrehozása.
- A projekt gyökérkönyvtárából helyileg futó Functions-gazdagép biztosítása.
Úgy dönt, hogy helyileg kezdi el a munkát az Azure Functionsben egy egyszerű érdeklődési köröket kiszámoló függvény fejlesztésével. Végül összetettebb függvényeket hozhat létre, amelyek együttműködnek, és meghívnak más szolgáltatásokat és adatbázisokat. A Core Tools használata egy alapszintű hitelszámítást végző függvény létrehozásához jó kiindulópont. Azt is meg kell próbálnia futtatni a függvényt a saját számítógépén, mielőtt közzétennénk az Azure-ban. Mindezt az Azure Cloud Shellből végezheti el a Core Tools használatával.
Az Azure Cloud Shell a Core Toolst, az Azure CLI-t és egy kódíráshoz használható szerkesztőt tartalmaz. A folytatás előtt mindenképpen válassza a tesztkörnyezet aktiválása lehetőséget.
Helyi Azure Functions-projekt létrehozása
Ebben a gyakorlatban a Cloud Shell használatával fejlesztheti ki első JavaScript-függvényét a Core Tools használatával. A Cloud Shell már rendelkezik a Core Tools és Node.js megfelelő verzióival.
A gyökérmappából futtassa
func init
a függvényprojekt létrehozását egy újloan-wizard
mappában.func init loan-wizard
Amikor a rendszer arra kéri, hogy válasszon ki egy feldolgozói futtatókörnyezetet, adja meg a 3 értéket a csomóponthoz.
Amikor a rendszer kéri egy nyelv kiválasztását, adja meg az 1-et a javascripthez.
A kimenet felsorolja a lemezre írt fájlokat, beleértve az alábbi fájlokat:
- host.json támogatja az alkalmazásszintű konfigurációt mind a futtatókörnyezeti példányhoz, mind az adott eseményindítókhoz és kötéstípusokhoz.
- local.settings.json csak helyi viselkedéseket és alkalmazásbeállításokat (helyi környezeti változókat) állít be.
- A package.json JavaScript-specifikus fájl, amely a kódon belül telepített és használt csomagokat tartja nyilván.
- A .gitignore és a extensions.json a Git verzióvezérlő eszköz és a Visual Studio Code által használt konfigurációs fájlok. Egyelőre figyelmen kívül hagyhatja őket.
HTTP által indított függvény létrehozása
Itt az ideje, hogy létrehozza a függvényt!
A Cloud Shellben lépjen az új
loan-wizard
könyvtárra.cd ~/loan-wizard
Futtassa
func new
a függvénylétrehozási varázsló elindításához.func new
Amikor a rendszer egy sablon kiválasztását kéri, adja meg a 7-et a HTTP-eseményindítóhoz.
Amikor a rendszer a HTTP-eseményindító függvénynevének megadását kéri, írja be a következőt
simple-interest
:Futtassa a következő parancsot a Cloud Shell-szerkesztő megnyitásához.
code .
A varázsló létrehoz egy új fájlt a simple-interest.js nevű függvényprojektben
src/functions
, amelynek alapértelmezett sablontartalma van. Ez a kód támogatja az Azure Functions Node.js v4 programozási modelljét. Szánjon egy kis időt a projektfájlok megismerésére a szerkesztő használatával. A képernyőképen a kibontott mappa látható, simple-interest.js a szerkesztőben.
A simple-interest függvény implementálása
Az alapértelmezett függvény-implementáció, amelyet a Core Tools hozott létre simple-interest.js a lekérdezési sztringben vagy a bejövő HTTP-kérés törzsében meghívott name
bemenetet keres, és visszaadja a sztringetHello, [name]
. Ez jól szemlélteti a HTTP-eseményindítók használatát, de ezt a kódot olyan kódra szeretné cserélni, amely három bemeneti paraméterből számít ki egyszerű kamatot.
A szerkesztő FILES ablaktábláján bontsa ki az src>functions mappát, és válassza a simple-interest.js lehetőséget a fájl szerkesztőben való megnyitásához.
Cserélje le a simple-interest.js teljes tartalmát a következő kódra:
const { app } = require('@azure/functions'); app.http('simple-interest', { methods: ['GET','POST'], authLevel: 'anonymous', handler: async (request, context) => { const principal = parseFloat(request.query.get('principal')); const rate = parseFloat(request.query.get('rate')); const term = parseFloat(request.query.get('term')); if ([principal, rate, term].some(isNaN)) { // If any empty or non-numeric values, return a 400 response with an // error message return { status: 400, body: "Please supply principal, rate and term in the query string" }; } else { // Otherwise set the response body to the product of the three values return { body: principal * rate * term }; } } });
Ez a szkript a HTTP-kérés lekérdezési sztringjében megkeresi a névvel ellátott
principal
rate
term
paramétereket. Ezután visszaadja az egyszerű kamatszámítás eredményét (principal * rate * term
).Mentse a fájlt a Ctrl S billentyűkombinációval+, majd zárja be a szerkesztőt a Ctrl Q billentyűkombinációval.+
A függvény futtatása a Cloud Shellben
Ha helyileg szeretné futtatni az új függvényt a kipróbáláshoz, használja func start
a Functions-futtatókörnyezetet (func.exe) egy háttérfolyamatban, hogy futás közben a parancssort használhassa. Ezután használjon egy parancssori eszközt a curl
függvény használatához.
Ha saját számítógépéről használja a Core Toolst, akkor csak egy második terminálablakból vagy webböngészőből használhatja curl
. A Core Tools által előállított kimenet valós időben jelenik meg az első terminálablakban. A Cloud Shellben egyetlen terminálra van korlátozva, ezért a Core Toolst (func.exe) egy háttérfolyamatban kell futtatnia.
Indítsa el a függvénygazdát némán a háttérben a következő paranccsal.
func start &> ~/output.txt &
A Cloud Shellnek
func new
is a könyvtárbanloan-wizard
kell lennie.A Functions-gazdagép most a kimenetét a ~/output.txt fájlba írja. Futtatás közben továbbra is használhatja a parancssort.
ps
A parancs használatával ellenőrizze, hogy afunc
folyamat fut-e.A kimeneti napló megtekintéséhez írja be a következő parancsot.
code ~/output.txt
A kimenetben megjelenik egy üzenet, amely a listák
Functions: simple-interest:
GET és POST HTTP-kéréskénthttp://localhost:7071/api/simple-interest
is elérhető.Feljegyzés
Ha hibaüzenet jelenik meg, a Ctrl C billentyűkombinációval +állítsa le a gazdagépet. Győződjön meg arról, hogy a kódfájl tartalma megegyezik a mintával.
Ez a localhost URL-cím nincs közzétéve a weben, csak a Cloud Shell-munkamenetben futó eszközökről érhető el.
Zárja be a szerkesztőt a Ctrl Q billentyűkombinációval.+
Futtassa a következő parancsot egy HTTP GET-kérés helyileg futó függvénynek való küldéséhez.
curl "http://localhost:7071/api/simple-interest" -w "\n"
A kimenet azt jelzi,
Please supply principal, rate and term in the query string
hogy a függvény meghívása sikeresen megtörtént, és vissza tud adni egy választ, de nem a kívánt módon hívja meg. A paramétereket a HTTP-kérés részeként kell megadnia.Hívja meg újra a függvényt. Ezúttal adjon meg egy értéket az egyes lekérdezési sztringparaméterekhez.
curl "http://localhost:7071/api/simple-interest?principal=5000&rate=.035&term=36" -w "\n"
Ezúttal a kimenet a következő
6300
: . A függvény a várt módon működik!A kimeneti napló ismételt megtekintéséhez írja be a következő parancsot.
code ~/output.txt
Az indítási naplóbejegyzések után egy időbélyeggel ellátott naplóbejegyzés-készlet jelenik meg minden alkalommal, amikor a függvényt meghívta a következővel
curl
:[2024-02-20T06:25:56.700Z] Executing 'Functions.simple-interest' (Reason='This function was programmatically called via the host APIs.', Id=5daf20c3-f204-41bb-a5b9-021acaf17c04) [2024-02-20T06:25:56.893Z] Executed 'Functions.simple-interest' (Succeeded, Id=5daf20c3-f204-41bb-a5b9-021acaf17c04, Duration=228ms)
Zárja be a szerkesztőt a Ctrl Q billentyűkombinációval.+