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ű AzureWebJobsStoragealkalmazá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.

  1. A Megoldáskezelőben kattintson a jobb gombbal a projektre, és válassza a Publish (Közzététel) lehetőséget.

  2. 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 alkalmazásbeállítások szerkesztése

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

  1. Az Eszközök menüben válassza a NuGet Package Manager Csomagkezelő>konzol lehetőséget.

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

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

  2. Másolja a függvény URL-címét az Azure-függvény futtatókörnyezetéből.

    Az Azure helyi futtatókörnyezete

  3. 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 függvény által visszaadott localhost válasz a böngészőben

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

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

    Képernyőkép arról, hogyan vehet fel Azure-fiókot Microsoft Azure Storage Explorer.

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

    Képernyőkép az Azure-fiókba való bejelentkezés ablakáról.

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

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

    Képernyőkép a Azure Storage Explorer üzenetsor üzenetéről.

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

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

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

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

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

    Képernyőkép a törölni kívánt erőforráscsoport kiválasztásáról a függvényalkalmazás oldaláról.

    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.

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

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