Rövid útmutató: PowerShell-függvény létrehozása az Azure-ban a parancssorból
Ebben a cikkben parancssori eszközökkel hoz létre egy PowerShell-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.
A rövid útmutató elvégzése néhány cent (USD) vagy még kevesebb költséggel jár az Azure-fiókját illetően.
A cikknek van Egy Visual Studio Code-alapú verziója is.
A helyi környezet konfigurálása
Mielőtt hozzákezdene, a következőkre van szüksége:
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 Az PowerShell-modul 9.4.0-s vagy újabb verziója.
Az Azure CLI 2.4-es 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.
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.
Futtassa a parancsot az
func init
alábbiak szerint, ha egy függvényprojektet szeretne létrehozni egy LocalFunctionProj nevű mappában a megadott futtatókörnyezettel:func init LocalFunctionProj --powershell
Navigáljon a projektmappába:
cd LocalFunctionProj
Ez a mappa a projekt különböző fájljait tartalmazza, 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.
run.ps1
A run.ps1 a function.json konfigurációja szerint aktivált függvényszkriptet definiál.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.
$name = $Request.Query.Name
if (-not $name) {
$name = $Request.Body.Name
}
$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
if ($name) {
$body = "Hello, $name. This HTTP triggered function executed successfully."
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
HTTP-eseményindító esetén a függvény megkapja a $Request
function.jsonban definiált paramnak átadott kérésadatokat. A függvény.json fájlban definiált Response
visszatérési objektumot a rendszer válaszként továbbítja a Push-OutputBinding
parancsmagnak.
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": "Request",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
}
]
}
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
.
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:
Megjegyzé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 powershell --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.
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 kiépít 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=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