Rövid útmutató: JavaScript-függvény létrehozása az Azure-ban a parancssorból

Ebben a cikkben parancssori eszközökkel hoz létre egy JavaScript-függvényt, amely a HTTP-kérelmekre válaszol. A kódot a helyi tesztelését követően az Azure Functions kiszolgáló nélküli környezetében helyezheti üzembe.

Fontos

A cikk tartalma a Node.js programozási modell választásától függően változik a lap tetején található választóban. A v4-modell általánosan elérhető, és úgy lett kialakítva, hogy rugalmasabb és intuitívabb felhasználói élményt nyújtson JavaScript- és TypeScript-fejlesztők számára. A migrálási útmutatóban további információt olvashat a v3 és a v4 közötti különbségekről.

Ennek a rövid útmutatónak a befejezése néhány USD cent vagy annál kisebb költséggel jár az Azure-fiókjában.

A cikknek van egy Visual Studio Code-alapú verziója is.

A helyi környezet konfigurálása

A kezdés előtt a következő előfeltételekkel kell rendelkeznie:

  • Node.js 14-es vagy újabb verziót.
  • Node.js 18-es vagy újabb verziót.

Az Azure Functions Core Tools telepítése

A Core Tools telepítésének ajánlott módja a helyi fejlesztőszámítógép operációs rendszerétől függ.

Az alábbi lépések windowsos telepítővel (MSI) telepítik a Core Tools v4.x-et. További információ a csomagalapú telepítőkről: Core Tools readme.

Töltse le és futtassa a Core Tools telepítőt a Windows-verzió alapján:

Ha korábban windowsos telepítőt (MSI) használt a Core Tools windowsos telepítéséhez, a legújabb verzió telepítése előtt el kell távolítania a régi verziót a Programok eltávolítása bővítményből.

  • Győződjön meg arról, hogy a Core Tools 4.0.5382-es vagy újabb verzióját telepíti.

Helyi függvényprojekt létrehozása

Az Azure Functionsben a függvényprojekt egy tároló egy vagy több egyedi függvény számára, amelyek mindegyike egy adott eseményindítóra válaszol. A projekt összes függvénye ugyanazokkal a helyi és üzemeltetési konfigurációkkal rendelkezik. Ebben a szakaszban egy függvényprojektet hoz létre, amely egyetlen függvényt tartalmaz.

  1. Egy megfelelő mappában futtassa az func init alábbi parancsot egy JavaScript-Node.js v3-projekt létrehozásához az aktuális mappában:

    func init --javascript --model V3
    

    Ez a mappa mostantól különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és host.json nevű konfigurációs fájlokat is. Mivel local.settings.json tartalmazhat az Azure-ból letöltött titkos kulcsokat, a fájl alapértelmezés szerint ki van zárva a .gitignore fájlból a forrásvezérlőből.

  2. Adjon hozzá egy függvényt a projekthez az alábbi paranccsal, ahol az --name argumentum a függvény egyedi neve (HttpExample), az --template argumentum pedig a függvény eseményindítóját (HTTP) adja meg.

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

    A func new parancs létrehoz egy olyan almappát, amely megfelel a függvény nevének, amely a projekt választott nyelvének megfelelő kódfájlt és egy function.json nevű konfigurációs fájlt tartalmaz.

Az Azure Functions Core Tools referenciája hasznos lehet.

(Nem kötelező) A fájl tartalmának vizsgálata

Ha szükséges, továbbléphet a függvény helyi futtatására, és később megvizsgálhatja a fájl tartalmát.

index.js

index.js exportál egy függvényt, amely a function.json konfigurációja alapján aktiválódik.

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    const name = (req.query.name || (req.body && req.body.name));
    const responseMessage = name
        ? "Hello, " + name + ". This HTTP triggered function executed successfully."
        : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";

    context.res = {
        // status: 200, /* Defaults to 200 */
        body: responseMessage
    };
}

HTTP-eseményindító esetén a függvény a function.json definiált változóban reqfogadja a kérelemadatokat. A válasz a function.json definiálva van res, és a használatával context.resérhető el. További információ: Azure Functions HTTP-eseményindítók és kötések.

function.json

function.json egy konfigurációs fájl, amely meghatározza a függvény bemenetét és kimenetétbindings, beleértve az eseményindító típusát is.

{
    "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        }
    ]
}

Minden kötéshez szükség van egy irányra, egy típusra és egy egyedi névre. A HTTP-eseményindító típus- httpTrigger és kimeneti kötéssel rendelkezik http.

  1. Egy megfelelő mappában futtassa az func init alábbi parancsot egy JavaScript-Node.js v4-projekt létrehozásához az aktuális mappában:

    func init --javascript
    

Ez a mappa mostantól különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és host.json nevű konfigurációs fájlokat is. Mivel local.settings.json tartalmazhat az Azure-ból letöltött titkos kulcsokat, a fájl alapértelmezés szerint ki van zárva a .gitignore fájlból a forrásvezérlőből. A szükséges npm-csomagok a node_modules is telepítve vannak.

  1. Adjon hozzá egy függvényt a projekthez az alábbi paranccsal, ahol az --name argumentum a függvény egyedi neve (HttpExample), az --template argumentum pedig a függvény eseményindítóját (HTTP) adja meg.

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous" 
    
    [`func new`](functions-core-tools-reference.md#func-new) creates a file named *HttpExample.js* in the *src/functions* directory, which contains your function's code. 
    
    
  2. Adja hozzá az Azure Storage kapcsolati adatait a local.settings.json.

    {
        "Values": {       
            "AzureWebJobsStorage": "<Azure Storage connection information>",
            "FUNCTIONS_WORKER_RUNTIME": "node"
        }
    }
    
  3. (Nem kötelező) Ha többet szeretne megtudni egy adott függvényről, például HTTP-eseményindítóról, futtassa a következő parancsot:

    func help httptrigger
    

Függvény helyi futtatása

  1. Futtassa a függvényt úgy, hogy elindítja a helyi Azure Functions futtatókörnyezet gazdagépét a LocalFunctionProj mappából.

    func start
    

    A kimenet vége felé a következő soroknak kell megjelennie:

    Screenshot of terminal window output when running function locally.

    Feljegyzés

    Ha a HttpExample nem jelenik meg a fent látható módon, valószínűleg a projekt gyökérmappájából indította el a gazdagépet. Ebben az esetben a Ctrl C billentyűkombinációval +állítsa le a gazdagépet, nyissa meg a projekt gyökérmappáját, és futtassa újra az előző parancsot.

  2. Másolja a HTTP-függvény URL-címét ebből a kimenetből egy böngészőbe, és fűzze hozzá a lekérdezési sztringet ?name=<YOUR_NAME>, így a teljes URL-cím hasonló http://localhost:7071/api/HttpExample?name=Functionslesz. A böngészőnek egy válaszüzenetet kell megjelenítenie, amely visszaadja a lekérdezési sztring értékét. Az a terminál, amelyben elindította a projektet, a naplókimenetet is megjeleníti a kérések során.

  3. Ha végzett, nyomja le a Ctrl + C billentyűkombinációt, és írja be a függvénygazda y leállításához.

Támogató Azure-erőforrások létrehozása a függvényhez

Mielőtt üzembe helyezheti a függvénykódot az Azure-ban, három erőforrást kell létrehoznia:

  • Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
  • Storage-fiók, amely az állapot és a függvényekkel kapcsolatos egyéb információk fenntartására szolgál.
  • Egy függvényalkalmazás, amely a függvénykód végrehajtásához biztosítja a környezetet. A függvényalkalmazások leképezik a helyi függvényprojektet, és lehetővé teszi a függvények logikai egységként való csoportosítását az erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében.

Ezeket az elemeket az alábbi parancsokkal hozhatja létre. Az Azure CLI és a PowerShell is támogatott.

  1. Ha még nem tette meg, jelentkezzen be az Azure-ba:

    az login
    

    Az az login parancs bejelentkezteti Az Azure-fiókjába.

  2. Hozzon létre egy erőforráscsoportot AzureFunctionsQuickstart-rg a kiválasztott régióban:

    az group create --name AzureFunctionsQuickstart-rg --location <REGION>
    

    Az az group create parancs létrehoz egy erőforráscsoportot. A fenti parancsban cserélje le <REGION> az Önhöz közeli régióra az az account list-locations parancsból visszaadott elérhető régiókódot.

  3. Hozzon létre egy általános célú tárfiókot az erőforráscsoportban és a régióban:

    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS --allow-blob-public-access false
    

    Az az storage account create parancs létrehozza a tárfiókot.

    Az előző példában cserélje le <STORAGE_NAME> az Ön számára megfelelő és az Azure Storage-ban egyedi nevet. A neveknek csak három-24 karakterből álló számokat és kisbetűket kell tartalmazniuk. Standard_LRS egy általános célú fiókot határoz meg, amelyet a Functions támogat.

Fontos

A tárfiók fontos alkalmazásadatok tárolására szolgál, néha magában az alkalmazáskódban is. Korlátoznia kell a hozzáférést más alkalmazásoktól és felhasználóktól a tárfiókhoz.

  1. A függvényalkalmazás létrehozása az Azure-ban:

    az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime node --runtime-version 18 --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
    

    Az az functionapp create parancs létrehozza a függvényalkalmazást az Azure-ban. Javasoljuk, hogy a Node.js legújabb LTS-verzióját használja, amely jelenleg 18. A verziót a következő beállítással --runtime-version18adhatja meg: .

    Az előző példában cserélje le <STORAGE_NAME> az előző lépésben használt fiók nevére, és cserélje le <APP_NAME> az Ön számára megfelelő globálisan egyedi névre. Az <APP_NAME> egyben a függvényalkalmazás alapértelmezett DNS-tartományaként is szolgál,

    Ez a parancs létrehoz egy függvényalkalmazást, amely a megadott nyelvi futtatókörnyezetben fut az Azure Functions használati csomagjában, amely ingyenes az itt felmerülő használatért. A parancs egy társított Azure-alkalmazás Elemzések-példányt is létrehoz ugyanabban az erőforráscsoportban, amellyel figyelheti a függvényalkalmazást, és megtekintheti a naplókat. További információ: Az Azure Functions monitorozása. A példány nem jár költségekkel, amíg nem aktiválja.

A függvényprojekt üzembe helyezése az Azure-ban

Miután sikeresen létrehozta a függvényalkalmazást az Azure-ban, készen áll a helyi függvényprojekt üzembe helyezésére a func azure functionapp publish paranccsal.

Az alábbi példában cserélje le <APP_NAME> az alkalmazás nevét.

func azure functionapp publish <APP_NAME>

A közzétételi parancs az alábbi kimenethez hasonló eredményeket jelenít meg (az egyszerűség kedvéért csonkolt):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

A függvény meghívása az Azure-ban

Mivel a függvény HTTP-eseményindítót használ, http-kérést küld az URL-címére a böngészőben, vagy egy olyan eszközzel, mint a curl.

Másolja a közzétételi parancs kimenetében látható teljes meghívási URL-címet egy böngészőcímsávra a lekérdezési paraméter ?name=Functionshozzáfűzésével. A böngészőnek hasonló kimenetet kell megjelenítenie, mint amikor helyileg futtatta a függvényt.

The output of the function run on Azure in a browser

Futtassa a következő parancsot a közel valós idejű streamelési naplók megtekintéséhez:

func azure functionapp logstream <APP_NAME> 

Egy külön terminálablakban vagy a böngészőben hívja újra a távoli függvényt. Az Azure-beli függvényvégrehajtás részletes naplója jelenik meg a terminálban.

Az erőforrások eltávolítása

Ha folytatja a következő lépést , és hozzáad egy Azure Storage-üzenetsor kimeneti kötését, tartsa a helyén az összes erőforrást, miközben a már elvégzett feladatokra épít.

Ellenkező esetben a következő paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását, hogy elkerülje a további költségek felmerülését.

az group delete --name AzureFunctionsQuickstart-rg

Következő lépések