Gyakorlat – Egyszerű Azure-függvény helyi létrehozása és tesztelése a Visual Studióval
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 .
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.
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.
A Visual Studio 2022 kezdőlapján válassza a Launch (Indítás) lehetőséget.
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.
Keressen rá vagy görgessen az Azure Functions-sablonra, majd válassza a Tovább gombot.
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. Válassza a Tovább lehetőséget.
Megjelenik a További információ lap.
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.
Válassza a Létrehozás lehetőséget.
A Visual Studio létrehozza a
WatchPortalFunction
projektet, és megjeleníti a Functions-alkalmazás forráskódfájljátFunction1.cs
a kódszerkesztő ablakban. A fájl egy osztályFunction1
kó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. ARun
metódus a[FunctionName ("Function1")]
attribútummal van megadva. Az előző leckében megtudtuk, hogy a metódus sablonparamétereiRun
egyHttpRequest
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
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.
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.
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.
A Visual Studio létrehoz egy új függvényt, és a
Run
metódust az attribútummal jegyzeteli.[FunctionName("WatchInfo")]
A függvény törzsében
Run
törölje a kódot alog.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."); } } }
Szúrja be a következő kódot a metódus törzsébe sor
Run
utánlog.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 hamiswatchinfo
adatokat hoztunk létre, amelyeket a rendszer a visszaadott értéktőlmodel
fü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 azmodel
érték használatával keresheti meg a helyeswatchinfo
értéket a visszatéréshez.
Az Azure-függvény helyi tesztelése
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.
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=abc
tehát az, amelyet ebben a gyakorlatban használunk. A kérés aktiválja aWatchInfo
függvényt, és átadja a modelltabc
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.Í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 üzenetetPlease provide a watch model in the query string
.Zárja be a webböngészőt, de hagyja futni az Azure-függvényalkalmazást.
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.
Indítsa újra a webböngészőt, és írja be az URL-címet a lekérdezési sztring
http://localhost:7071/api/WatchInfo
nélkül.A Visual Studio kiemeli a kódot azon a törésponton, ahol a végrehajtás szünetel.
A Visual Studióban az F10 billentyű lenyomásával lépkedhet az utasítás felett a törésponton.
A Hibakereső ablak Autos lapján ellenőrizze, hogy a változó az
model
null
. A változó azért jeleníti meg ezt az értéket, mert a lekérdezési sztring nem tartalmaz modellparamétert.Nyomja le ismét az F10 billentyűt, és ellenőrizze, hogy a vezérlő az objektumot visszaadó utasításra ugrik-e
BadRequestObjectResult
.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.
Í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 egyOkObjectResult
objektumként lesznek visszaadva.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.