Rövid útmutató: C# függvény létrehozása az Azure-ban a parancssorból
Ebben a cikkben parancssori eszközökkel hoz létre egy C# 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.
Ez a cikk létrehoz egy HTTP által aktivált függvényt, amely a .NET 8-on fut egy izolált feldolgozói folyamatban. A C# függvényekhez támogatott .NET-verziókról további információt a támogatott verziókban talál. A cikknek van egy Visual Studio Code-alapú verziója is.
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 helyi környezet konfigurálása
Mielőtt hozzákezdene, a következőkre van szüksége:
Az Azure-erőforrások létrehozásához az alábbi eszközök egyike:
Az Azure CLI2.4-es vagy újabb verziója.
Az Azure Az PowerShell-modul 5.9.0-s vagy újabb verziója.
Aktív előfizetéssel rendelkező Azure-fiókra is szüksége van. Fiók ingyenes létrehozása.
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 --worker-runtime dotnet-isolated --target-framework net8.0
Navigáljon a projektmappába:
cd LocalFunctionProj
Ez a mappa különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és host.json nevű konfigurációs fájlokat. 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"
func new
létrehoz egy HttpExample.cs kódfájlt.
(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.
HttpExample.cs
HttpExample.cs egy metódust Run
tartalmaz, amely HttpRequest-objektumként fogadja a változóban a req
kérelemadatokat. Ezt a paramétert a HttpTriggerAttribute díszíti az eseményindító viselkedésének meghatározásához.
using System.Net;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Company.Function
{
public class HttpExample
{
private readonly ILogger<HttpExample> _logger;
public HttpExample(ILogger<HttpExample> logger)
{
_logger = logger;
}
[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
return new OkObjectResult("Welcome to Azure Functions!");
}
}
}
A visszatérési objektum egy IActionResult objektum, amely a HTTP-válasznak visszaadott adatokat tartalmazza.
További információ: Azure Functions HTTP-eseményindítók és kötések.
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:
func start
A kimenet vége felé a következő soroknak kell megjelennie:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...
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, 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 keresse meg a függvény URL-címét, és az Azure Functions üdvözlőüzenetét kell kapnia.Ha elkészült, használja a Ctrl C billentyűkombinációt+, és állítsa
y
le a függvény gazdagépet.
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 dotnet-isolated --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 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, és támogatja a GET-kéréseket, egy HTTP-kéréssel hívja meg az URL-címére. Ezt a legegyszerűbben egy böngészőben teheti meg.
Másolja a közzétételi parancs kimenetében látható teljes meghívási URL-címet egy böngésző címsorába. Ha erre az URL-címre lép, a böngészőnek hasonló kimenetet kell megjelenítenie, mint a függvény helyi futtatásakor.
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