Rövid útmutató: TypeScript-függvény létrehozása az Azure-ban a parancssorból
Ebben a cikkben parancssori eszközökkel hoz létre egy TypeScript-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:
An Azure account with an active subscription. 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.
- Node.js 14-es vagy újabb verzió.
Node.js 18-os vagy újabb verzió.
TypeScript 4-es vagy újabb verzió.
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 TypeScript Node.js v3-projekt létrehozásához az aktuális mappában:func init --typescript --model V3
Ez a mappa mostantól különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és a host.json nevű konfigurációs fájlokat. Mivel a local.settings.json tartalmazhat az Azure-ból letöltött titkos kulcsokat, a .gitignore fájl alapértelmezés szerint kizárja a forrásvezérlésbő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"
func new
létrehoz egy 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.
(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.ts
Az index.ts exportál egy függvényt, amely a function.json konfigurációja szerint aktiválódik.
import { AzureFunction, Context, HttpRequest } from "@azure/functions"
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
context.log('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
};
};
export default httpTrigger;
HTTP-eseményindító esetén a függvény a függvény.jsonban meghatározott HttpRequest típusú változóban req
fogadja a kérelemadatokat. A függvény.json függvényben $return
definiált visszatérési objektum a válasz.
function.json
A function.json egy konfigurációs fájl, amely meghatározza a függvény bemenetét és kimenetét bindings
, 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 TypeScript Node.js v4-projekt létrehozásához az aktuális mappában:func init --typescript
Ez a mappa mostantól különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és a host.json nevű konfigurációs fájlokat. Mivel a local.settings.json tartalmazhat az Azure-ból letöltött titkos kulcsokat, a .gitignore fájl alapértelmezés szerint kizárja a forrásvezérlésbő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
Létrehoz egy HttpExample.ts nevű fájlt az src/functions könyvtárban, amely tartalmazza a függvény kódját.Adja hozzá az Azure Storage kapcsolati adatait a local.settings.json webhelyen.
{ "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épet a LocalFunctionProj mappából:
npm install npm start
npm start
A kimenet vége felé a következő naplóknak kell megjelennie:
Megjegyzés:
Ha a HttpExample nem jelenik meg a naplókban 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, keresse meg a projekt gyökérmappáját, és futtassa újra az előző parancsot.
Másolja a függvény URL-címét
HttpExample
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 a következőhöz hasonló üzenetet kell megjelenítenieHello Functions
:Az a terminál, amelyben elindította a projektet, a naplókimenetet is megjeleníti a kérések során.
Ha elkészült, a Ctrl c billentyűkombinációval +állítsa le a függvény gazdagépét az y billentyűkombinációval.
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 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 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
Mielőtt a Core Tools használatával üzembe helyezheti a projektet az Azure-ban, a TypeScript-forrásfájlokból éles üzemre kész JavaScript-fájlokat hozhat létre.
A TypeScript-projekt üzembe helyezésre való előkészítéséhez használja az alábbi parancsot:
npm run build
A szükséges erőforrásokkal most már készen áll a helyi függvényprojekt üzembe helyezésére az Azure-beli függvényalkalmazásban a közzétételi paranccsal. Az alábbi példában cserélje le
<APP_NAME>
az alkalmazás nevét.func azure functionapp publish <APP_NAME>
Ha a következő hibaüzenet jelenik meg: "Nem találja az alkalmazást ...", várjon néhány másodpercet, és próbálkozzon újra, mivel előfordulhat, hogy az Azure nem inicializálta teljesen az alkalmazást az előző
az functionapp create
parancs után.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?code=KYHrydo4GFe9y0000000qRgRJ8NdLFKpkakGJQfC3izYVidzzDN4gQ==
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.
Clean up resources
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