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:
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Az Azure-erőforrások létrehozásához az alábbi eszközök egyike:
Az Azure CLI 2.4-es vagy újabb verziója.
Az Azure Az PowerShell-modul 5.9.0-s vagy újabb verziója.
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:
- v4.x – Windows 64 bites (ajánlott. A Visual Studio Code hibakereséséhez 64 bitesre van szükség.)
- v4.x – Windows 32 bites
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.
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.
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 req
fogadja 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
.
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.
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.
Adja hozzá az Azure Storage kapcsolati adatait a local.settings.json.
{ "Values": { "AzureWebJobsStorage": "<Azure Storage connection information>", "FUNCTIONS_WORKER_RUNTIME": "node" } }
(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
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:
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.
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=Functions
lesz. 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.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.
Ha még nem tette meg, jelentkezzen be az Azure-ba:
az login
Az az login parancs bejelentkezteti Az Azure-fiókjába.
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.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.
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-version
18
adhatja 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 Insights-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
parancs használatával.
A gyökérprojekt mappájában futtassa ezt a func azure functionapp publish
parancsot:
func azure functionapp publish <APP_NAME>
Ebben a példában cserélje le <APP_NAME>
az alkalmazás nevét. A sikeres üzembe helyezés 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=Functions
hozzáfűzésével. A böngészőnek hasonló kimenetet kell megjelenítenie, mint amikor helyileg futtatta a függvényt.
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