Gyakorlat – Függvény helyi létrehozása a Core Tools használatával

Befejeződött

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.

  1. A gyökérmappából futtassa func init a függvényprojekt létrehozását egy új loan-wizard mappában.

    func init loan-wizard
    
  2. 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.

  3. 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!

  1. A Cloud Shellben lépjen az új loan-wizard könyvtárra.

    cd ~/loan-wizard
    
  2. Futtassa func new a függvénylétrehozási varázsló elindításához.

    func new
    
  3. Amikor a rendszer egy sablon kiválasztását kéri, adja meg a 7-et a HTTP-eseményindítóhoz.

  4. 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:

  5. Futtassa a következő parancsot a Cloud Shell-szerkesztő megnyitásához.

    code .
    

    Screenshot showing the simple-interest folder with the function.json file open in Cloud Shell code editor.

    A varázsló létrehoz egy új fájlt a simple-interest.js nevű függvényprojektbensrc/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.

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

  2. 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 principalrateterm paramétereket. Ezután visszaadja az egyszerű kamatszámítás eredményét (principal * rate * term).

  3. 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 curlfü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.

  1. 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 newis a könyvtárban loan-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 a func folyamat fut-e.

  2. 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ént http://localhost:7071/api/simple-interestis 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.

  3. Zárja be a szerkesztőt a Ctrl Q billentyűkombinációval.+

  4. 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 stringhogy 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.

  5. 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!

  6. 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)
    
    
  7. Zárja be a szerkesztőt a Ctrl Q billentyűkombinációval.+