Gyakorlat – Egyszerű Azure-függvény helyi létrehozása és tesztelése a Visual Studióval

Befejeződött

A Visual Studio kiváló környezetet biztosít egy Azure-függvényalkalmazás létrehozásához és teszteléséhez. Helyileg fejleszthet Azure-függvényeket, és ellenőrizheti azok helyes működését, mielőtt üzembe helyezné őket a felhőben.

A luxusóra online webhelyének forgatókönyvében követelmény egy olyan függvény, amely részletes információkat ad vissza az óráról az óra modellszámának megadásakor. A visszaküldött adatok a következők: a gyártó, a tok típusa (szilárd, átlátszó vagy gravírozott), a káva, a tárcsázás stílusa, a tok befejezése, az ékszerek száma stb.

Ebben a gyakorlatban a függvény egy verzióját helyileg implementálja és teszteli a Visual Studióval.

Feljegyzés

A gyakorlat megkezdése előtt győződjön meg arról, hogy telepítve van a VS 2022, valamint a Web & Cloud számítási feladatok bővítményei ASP.NET, valamint a webfejlesztés és az Azure-fejlesztés.

Azure-függvényalkalmazás létrehozása

Azure-függvényalkalmazás létrehozása Azure Functions-sablonnal .

  1. Indítsa el a Visual Studio Installert, és a Visual Studio 2022 kezdőlapján válassza a Módosítás lehetőséget.

  2. Győződjön meg arról, hogy a ASP.NET és a webfejlesztés és az Azure-fejlesztés ki van választva és elérhető (ha a letöltés során nem válassza a Telepítés lehetőséget), majd válassza a Bezárás lehetőséget.

    Képernyőkép a Visual Studio 2022-ről, kiemelt asp ponthálóval és Azure-fejlesztési számítási feladatokkal.

  3. A Visual Studio 2022 kezdőlapján válassza a Launch (Indítás) lehetőséget.

  4. Az Első lépések menüben válassza az Új projekt létrehozása lehetőséget. Megjelenik az Új projekt létrehozása oldal.

  5. Keressen rá vagy görgessen az Azure Functions-sablonra, majd válassza a Tovább gombot.

    Képernyőkép a Visual Studio 2022 Új projektlap létrehozása az Azure Functions-sablon kiemelésével.

  6. Megjelenik az Új projekt konfigurálása lap. Írja be a következő értékeket.

    Mező Érték
    Projektnév WatchPortalFunction
    Helyen Válasszon ki egy helyet a projekt tárolásához egy mappában való böngészéssel, vagy hozzon létre egy mappát a helyi számítógépen.
    Megoldás neve A WatchPortalFunction elfogadása (alapértelmezett).
    Megoldás és projekt elhelyezése ugyanabban a könyvtárban Nincs bejelölve (NINCS kijelölve). Ez a beállítás biztosítja a modul megfelelő mappastruktúráját.

    Képernyőkép az új projektlap konfigurálásához kiemelt létrehozással.

  7. Válassza a Tovább lehetőséget.

  8. Megjelenik a További információ lap.

  9. Válassza ki a következő értékeket.

    Mező Érték
    Dotnet-verzió *.NET 6.0 (hosszú távú támogatás)
    Függvény-eseményindító Http-eseményindító
    Az Azurite használata futtatókörnyezeti tárfiókhoz (AzureWebJobsStorage) Ellenőrizni
    A Docker engedélyezése Nincs bejelölve
    Engedélyszint Névtelen

    Ha egy Visual Studio-értesítés azt jelzi, hogy a frissítések készen állnak, válassza a Frissítés lehetőséget.

  10. Válassza a Létrehozás lehetőséget.

    Képernyőkép az Azure Functions eseményindítóiról, kiemelt HTTP-eseményindítóval.

    A Visual Studio létrehozza a WatchPortalFunction projektet, és megjeleníti a Functions-alkalmazás forráskódfájlját Function1.cs a kódszerkesztő ablakban. A fájl egy osztály Function1kódját tartalmazza.

    Ahogy az a következő példakódban is látható, az osztály a Function1 HTTP-eseményindító sablonból származó sablon sablonját tartalmazza. A Run metódus a [FunctionName ("Function1")] attribútummal van megadva. Az előző leckében megtudtuk, hogy a metódus sablonparaméterei Run egy HttpRequest objektum, amely tartalmazza a függvényt kiváltó kérés részleteit, valamint egy nyomkövetési adatok rögzítésére szolgáló nyomkövetési naplóbejegyzést.

    namespace WatchPortalFunction
    {
        public static class Function1
        {
            [FunctionName("Function1")]
            public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
            {
                log.LogInformation("C# HTTP trigger function processed a request.");
    
                string name = req.Query["name"];
    
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                dynamic data = JsonConvert.DeserializeObject(requestBody);
                name = name ?? data?.name;
    
                return name != null
                    ? (ActionResult)new OkObjectResult($"Hello, {name}")
                    : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
            }
        }
    }
    

A WatchInfo Azure-függvény létrehozása

  1. A Nézet menüben válassza a Megoldáskezelő. Az Megoldáskezelő ablakban kattintson a jobb gombbal a WatchPortalFunction Azure Functions-projektre, majd a helyi menüben válassza az Új Azure-függvény hozzáadása>lehetőséget.

    Képernyőkép a Megoldáskezelő ablakról. A felhasználó a Hozzáadás –> Új Azure-függvény lehetőséget választotta.

  2. Az Új elem hozzáadása - WatchPortalFunction ablakban válassza az Azure-függvény lehetőséget. A Név mezőbe írja be a WatchInfo.cs, majd válassza a Hozzáadás lehetőséget.

    Képernyőkép az Új elem hozzáadása ablakról. Az Azure-függvénysablon ki van választva, és az új függvény neve WatchInfo.cs.

  3. Az Új Azure-függvény - WatchInfo ablakban válassza a HTTP-eseményindító lehetőséget. Az Engedélyezési szint legördülő listában válassza a Névtelen, majd a Hozzáadás lehetőséget.

    Képernyőkép az Új Azure-függvény ablakról. A névtelen hozzáférési jogosultságokkal rendelkező HTTP-eseményindító ki van jelölve.

    A Visual Studio létrehoz egy új függvényt, és a Run metódust az attribútummal jegyzeteli.[FunctionName("WatchInfo")]

  4. A függvény törzsében Run törölje a kódot a log.LogInformation sor után. Az eredménynek így kell kinéznie.

    namespace WatchPortalFunction
    {
        public static class WatchInfo
        {
            [FunctionName("WatchInfo")]
            public static async Task<IActionResult> Run(
                [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
                ILogger log)
            {
                log.LogInformation("C# HTTP trigger function processed a request.");
            }
        }
    }
    
  5. Szúrja be a következő kódot a metódus törzsébe sor Run után log.LogInformation .

    // Retrieve the model id from the query string
    string model = req.Query["model"];
    
    // If the user specified a model id, find the details of the model of watch
    if (model != null)
    {
        // Use dummy data for this example
        dynamic watchinfo = new { Manufacturer = "abc", CaseType = "Solid", Bezel = "Titanium", Dial = "Roman", CaseFinish = "Silver", Jewels = 15 };
    
        return (ActionResult)new OkObjectResult($"Watch Details: {watchinfo.Manufacturer}, {watchinfo.CaseType}, {watchinfo.Bezel}, {watchinfo.Dial}, {watchinfo.CaseFinish}, {watchinfo.Jewels}");
    }
    return new BadRequestObjectResult("Please provide a watch model in the query string");
    

    Ez a kód beolvassa a paramétert a model HTTP-kérelem lekérdezési sztringjében, és visszaadja az adott óramodell részleteit. Ebben a példakódban olyan hamis watchinfo adatokat hoztunk létre, amelyeket a rendszer a visszaadott értéktől modelfüggetlenül visszaad. A függvény egy választ ad vissza, amely ezeket a részleteket tartalmazza. Ha a HTTP-kérés nem tartalmaz lekérdezési sztringet, a függvény hibaüzenetet ad vissza. Egy valós példában az model érték használatával keresheti meg a helyes watchinfo értéket a visszatéréshez.

Az Azure-függvény helyi tesztelése

  1. A parancssávon válassza a Hibakeresés>indítása hibakeresés lehetőséget.

    A Visual Studio létrehozza az Azure-függvényalkalmazást, és elindítja az Azure Functions-futtatókörnyezetet. Megnyílik egy Kimeneti ablak, amely megjeleníti az üzeneteket a futtatókörnyezet indításakor. Amikor a futtatókörnyezet készen áll, megjelenik a HTTP-függvények listája és az egyes függvények aktiválásához használható URL-cím.

    Képernyőkép az Azure Functions futtatókörnyezet ablakáról. A futtatókörnyezet elindítja az Azure-függvényalkalmazást, és megjeleníti a

  2. Nyisson meg egy webböngészőt, és adja meg a futtatókörnyezeti ablakban megjelenő URL-címet. Az alapértelmezett URL-cím http://localhost:7071/api/WatchInfo?model=abctehát az, amelyet ebben a gyakorlatban használunk. A kérés aktiválja a WatchInfo függvényt, és átadja a modellt abc lekérdezési sztring paraméterként. A webböngészőnek meg kell jelenítenie a függvény által létrehozott próbabábu részleteit.

    Képernyőkép a WatchInfo Azure-függvényt aktiváló webböngészőről. A függvény a megadott URL-cím lekérdezési sztringjében megadott modell próbabábuadatait adja vissza.

  3. Írja be a http://localhost:7071/api/WatchInfo URL-címet. Ez a kérés nem tartalmaz lekérdezési sztringet. Az eseményindító visszaadja a hibaválaszt, és a webböngésző megjeleníti az üzenetet Please provide a watch model in the query string.

  4. Zárja be a webböngészőt, de hagyja futni az Azure-függvényalkalmazást.

  5. A Visual Studióban állítson be töréspontot a kódnak ahhoz a sorához, amely lekéri a modellt a lekérdezési sztringből.

    Képernyőkép a Visual Studióról, amelyen egy töréspont látható azon az utasításon, amely beolvassa a modellt a lekérdezési sztringből.

  6. Indítsa újra a webböngészőt, és írja be az URL-címet a lekérdezési sztring http://localhost:7071/api/WatchInfonélkül.

    A Visual Studio kiemeli a kódot azon a törésponton, ahol a végrehajtás szünetel.

  7. A Visual Studióban az F10 billentyű lenyomásával lépkedhet az utasítás felett a törésponton.

  8. A Hibakereső ablak Autos lapján ellenőrizze, hogy a változó az modelnull. A változó azért jeleníti meg ezt az értéket, mert a lekérdezési sztring nem tartalmaz modellparamétert.

    A Visual Studio hibakeresőjének képernyőképe a modellváltozó értékével.

  9. Nyomja le ismét az F10 billentyűt, és ellenőrizze, hogy a vezérlő az objektumot visszaadó utasításra ugrik-e BadRequestObjectResult .

  10. A metódus futtatásának folytatásához és a webböngészőbe való visszatéréshez nyomja le az F5 billentyűt. Ugyanez a hibaüzenet jelenik meg.

  11. Írja be a webböngészőbe a lekérdezési sztringet és a model paramétert tartalmazó URL-címet. Lépjen végig a hibakereső függvényén, és ellenőrizze, hogy a modell helyesen van-e beolvasva. A model változónak a paraméter értékét kell tartalmaznia, a modell adatai pedig egy OkObjectResult objektumként lesznek visszaadva.

  12. A menüsávon válassza a Hibakeresés>leállítása hibakeresés lehetőséget.

Ebben a gyakorlatban láthatta, hogy a Visual Studióban az Azure Functions Tools bővítmény leegyszerűsíti az Azure-függvényalkalmazások létrehozásának élményét azáltal, hogy a kód összeállításához és hibakereséséhez ismerős eszközöket használ.