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:

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:

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.

  1. 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
    
  2. 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.

  3. 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

  1. 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.

  2. 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.

  3. 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.

  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 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

Következő lépések