Függvények csatlakoztatása az Azure Storage-hoz a Visual Studióval
Azure Functions lehetővé teszi az Azure-szolgáltatások és más erőforrások függvényekhez való csatlakoztatását anélkül, hogy saját integrációs kódot kellene írnia. Ezek a kötések, amelyek mind a bemenetet, mind a kimenetet képviselik, a függvénydefinícióban deklarálódnak. A kötések adatai a függvények számára paraméterekként vannak megadva. Az eseményindítók speciális típusú bemeneti kötések. Bár egy függvénynek csak egy eseményindítója van, több bemeneti és kimeneti kötéssel is rendelkezhet. További információ: Azure Functions triggerek és kötések fogalmai.
Ez a cikk bemutatja, hogyan csatlakoztathatja az előző rövid útmutatóban létrehozott függvényt az Azure Storage-hoz a Visual Studióval. A függvényhez hozzáadott kimeneti kötés adatokat ír a HTTP-kérésből egy üzenetbe egy Azure Queue Storage-üzenetsorba.
A legtöbb kötéshez olyan tárolt kapcsolati sztring szükséges, amelyet a Functions a kötött szolgáltatás eléréséhez használ. A könnyebbség érdekében használja a függvényalkalmazással létrehozott Storage-fiókot. A fiókhoz való kapcsolat már egy nevű AzureWebJobsStorage
alkalmazásbeállításban van tárolva.
Előfeltételek
A cikk megkezdése előtt a következőket kell tennie:
- Töltse ki a Visual Studio rövid útmutatójának 1. részét.
- Telepítse Azure Storage Explorer. Storage Explorer egy eszköz, amellyel megvizsgálhatja a kimeneti kötés által létrehozott üzenetsor-üzeneteket. Storage Explorer macOS, Windows és Linux rendszerű operációs rendszereken támogatott.
- Jelentkezzen be Az Azure-előfizetésbe a Visual Studióból.
A függvényalkalmazás beállításainak letöltése
Az előző rövid útmutatóban létrehozott egy függvényalkalmazást az Azure-ban a szükséges Storage-fiókkal együtt. A fiókhoz tartozó kapcsolati sztring biztonságosan tároljuk az Azure-beli alkalmazásbeállításokban. Ebben a cikkben üzeneteket ír egy storage-üzenetsorba ugyanabban a fiókban. Ha a függvény helyi futtatásakor szeretne csatlakozni a Storage-fiókjához, le kell töltenie az alkalmazásbeállításokat a local.settings.json fájlba.
A Megoldáskezelőben kattintson a jobb gombbal a projektre, és válassza a Publish (Közzététel) lehetőséget.
A Közzététel lap Üzemeltetés területén bontsa ki a három elemet (...), majd válassza a Kezelés Azure App Service beállítások lehetőséget.
Az AzureWebJobsStorage területen másolja a Távoli sztring értékét a Helyi értékre, majd válassza az OK gombot.
A kapcsolat beállítását AzureWebJobsStorage
használó tárolókötés mostantól helyi futtatáskor csatlakozhat a Queue-tárolóhoz.
Kötési bővítmények regisztrálása
Mivel queue storage kimeneti kötést használ, a projekt futtatása előtt telepítenie kell a Storage-kötések bővítményt. A HTTP- és időzítő-eseményindítók kivételével a kötések bővítménycsomagként vannak implementálva.
Az Eszközök menüben válassza a NuGet Package Manager Csomagkezelő>konzol lehetőséget.
A tárolóbővítmények telepítéséhez futtassa a következő Install-Package parancsot a konzolon:
Install-Package Microsoft.Azure.WebJobs.Extensions.Storage
Most hozzáadhatja a tárkimeneti kötést a projekthez.
Kimeneti kötés hozzáadása
Egy C#-projektben a kötések a függvénymetódus kötési attribútumaiként vannak definiálva. A meghatározott definíciók attól függnek, hogy az alkalmazás folyamatban (C#-osztálytár) vagy elkülönített feldolgozófolyamatban fut-e.
Nyissa meg a HttpExample.cs projektfájlt, és adja hozzá a következő paramétert a Run
metódusdefinícióhoz:
[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,
A msg
paraméter egy ICollector<T>
típus, amely egy kimeneti kötésbe írt üzenetek gyűjteményét jelöli, amikor a függvény befejeződik. Ebben az esetben a kimenet egy nevű tárolási üzenetsor outqueue
. A StorageAccountAttribute
a tárfiók kapcsolati sztring állítja be. Ez az attribútum azt a beállítást jelzi, amely tartalmazza a tárfiók kapcsolati sztring, és az osztály, a metódus vagy a paraméter szintjén alkalmazható. Ebben az esetben kihagyhatja StorageAccountAttribute
, mert már használja az alapértelmezett tárfiókot.
A Run metódus definíciójának most a következő kódhoz kell hasonlítania:
[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,
ILogger log)
Kimeneti kötést használó kód hozzáadása
A kötés definiálása után a name
kötés használatával attribútumként érheti el a függvény aláírásában. Kimeneti kötés használatával nem kell az Azure Storage SDK-kódot használnia a hitelesítéshez, az üzenetsor-referenciák lekéréséhez vagy az adatok írásához. A Functions-futtatókörnyezet és az üzenetsor kimeneti kötése végrehajtja ezeket a feladatokat.
Adjon hozzá egy kódot, amely a msg
kimeneti kötési objektumot használja egy üzenetsor-üzenet létrehozásához. Adja hozzá ezt a kódot, mielőtt a metódus visszatér.
if (!string.IsNullOrEmpty(name))
{
// Add a message to the output collection.
msg.Add(name);
}
Ezen a ponton a függvénynek a következőképpen kell kinéznie:
[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,
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;
if (!string.IsNullOrEmpty(name))
{
// Add a message to the output collection.
msg.Add(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 függvény helyi futtatása
A függvény futtatásához nyomja le az F5 billentyűt a Visual Studióban. Előfordulhat, hogy engedélyeznie kell egy tűzfalkivételt, hogy az eszközök kezelni tudják a HTTP-kéréseket. Az engedélyezési szinteket a rendszer soha nem kényszeríti ki, ha helyileg futtat egy függvényt.
Másolja a függvény URL-címét az Azure-függvény futtatókörnyezetéből.
Illessze be a HTTP-kérelem URL-címét a böngésző címsorába. Fűzze hozzá a lekérdezési sztringet
?name=<YOUR_NAME>
ehhez az URL-címhez, és futtassa a kérést. Az alábbi képen a böngészőben a függvény által visszaadott helyi GET-kérésre adott válasz látható:A hibakeresés leállításához nyomja le a Shift+F5 billentyűt a Visual Studióban.
A függvények futtatókörnyezete létrehoz egy nevű outqueue
új üzenetsort a tárfiókban a kimeneti kötés első használatakor. A Storage Explorer használatával ellenőrizheti, hogy az üzenetsor létre lett-e hozva az új üzenettel együtt.
A Storage Explorer csatlakoztatása a fiókjához
Hagyja ki ezt a szakaszt, ha már telepítette Azure Storage Explorer, és csatlakoztatta azt az Azure-fiókjához.
Futtassa a Azure Storage Explorer eszközt, válassza a csatlakozás ikont a bal oldalon, és válassza a Fiók hozzáadása lehetőséget.
A Csatlakozás párbeszédpanelen válassza az Azure-fiók hozzáadása, az Azure-környezet, majd a Bejelentkezés... lehetőséget.
Miután sikeresen bejelentkezett a fiókjába, megjelenik a fiókjához társított összes Azure-előfizetés. Válassza ki az előfizetését, és válassza az Explorer megnyitása lehetőséget.
A kimeneti üzenetsor vizsgálata
A Storage Explorer bontsa ki a Queues csomópontot, majd válassza ki a outqueue nevű üzenetsort.
Az üzenetsor tartalmazza az üzenetet, amelyet az üzenetsor kimeneti kötése létrehozott a HTTP által aktivált függvény futtatásakor. Ha az alapértelmezett Azure
name
értékkel hívta meg a függvényt, az üzenetsorban található üzenet a következő lesz: A függvénynek átadott név: Azure.Futtassa újra a függvényt, küldjön egy másik kérést, és megjelenik egy új üzenet az üzenetsorban.
Most itt az ideje, hogy újból közzétehesse a frissített függvényalkalmazást az Azure-ban.
A frissített alkalmazás ismételt üzembe helyezése és ellenőrzése
A Megoldáskezelő kattintson a jobb gombbal a projektre, és válassza a Közzététel lehetőséget, majd a Közzététel lehetőséget a projekt Azure-ba való újbóli közzétételéhez.
Az üzembe helyezés befejeződése után ismét a böngészővel tesztelheti az újra üzembehelyezett függvényt. A korábbiakhoz hasonlóan fűzze hozzá a lekérdezési sztringet
&name=<yourname>
az URL-címhez.Tekintse meg ismét az üzenetet a tárolási üzenetsorban annak ellenőrzéséhez, hogy a kimeneti kötés ismét létrehoz-e új üzenetet az üzenetsorban.
Az erőforrások eltávolítása
Az ebben a gyűjteményben lévő többi rövid útmutató erre a rövid útmutatóra épül. Ha további rövid útmutatókkal, oktatóanyagokkal vagy az ebben a rövid útmutatóban létrehozott szolgáltatásokkal szeretne dolgozni, ne törölje az erőforrásokat.
Az erőforrások kifejezés az Azure-ban például függvényalkalmazásokra, függvényekre vagy tárfiókokra utal. Ezek erőforráscsoportokba vannak csoportosítva, és a csoport törlésével törölheti a csoport összes elemét.
A rövid útmutatók elvégzéséhez erőforrásokat hozott létre. Előfordulhat, hogy ezekért az erőforrásokért a fiók állapotától és a szolgáltatás díjszabásától függően kell fizetnie. Ha már nincs szüksége ezekre az erőforrásokra, a következőképpen törölheti őket:
Az Azure Portalon nyissa meg az Erőforráscsoport oldalt.
Ha a függvényalkalmazás oldaláról szeretné elérni ezt a lapot, válassza az Áttekintés lapot, majd válassza az Erőforráscsoport területen található hivatkozást.
Ha az irányítópultról szeretné elérni ezt a lapot, válassza az Erőforráscsoportok lehetőséget, majd válassza ki a cikkhez használt erőforráscsoportot.
Az Erőforráscsoport lapon tekintse át a belefoglalt erőforrások listáját, és ellenőrizze, hogy ezeket szeretné-e törölni.
Válassza az Erőforráscsoport törlése lehetőséget, és kövesse az utasításokat.
A törlés eltarthat néhány percig. Amint a művelet befejeződött, néhány másodpercre egy értesítés jelenik meg. Az értesítést úgy is megtekintheti, ha kiválasztja a harang ikont az oldal tetején.
Következő lépések
Frissítette a HTTP által aktivált függvényt, hogy adatokat írjon egy Storage-üzenetsorba. A Függvények fejlesztésével kapcsolatos további információkért lásd: Azure Functions fejlesztése a Visual Studióval.
Ezután engedélyeznie kell az Application Insights monitorozását a függvényalkalmazáshoz: