Oktatóanyag: Az Azure WebJobs SDK használatának első lépései eseményvezérelt háttérfeldolgozáshoz
Első lépések a Azure App Service-hez készült Azure WebJobs SDK-val, amellyel a webalkalmazások háttérfeladatokat, ütemezett feladatokat futtathatnak, és reagálhatnak az eseményekre.
A Visual Studio 2022 használatával hozzon létre egy .NET Core-konzolalkalmazást, amely a WebJobs SDK használatával válaszol az Azure Storage Queue üzeneteire, helyileg futtatja a projektet, és végül üzembe helyezi az Azure-ban.
Az oktatóanyag során a következőket fogja elsajátítani:
- Konzolalkalmazás létrehozása
- Adjon hozzá egy függvényt
- Helyi tesztelés
- Üzembe helyezés az Azure-ban
- Application Insights-naplózás engedélyezése
- Bemeneti/kimeneti kötések hozzáadása
Előfeltételek
Visual Studio 2022 az Azure fejlesztési számítási feladattal. Telepítse a Visual Studio 2022-t.
Egy Azure-fiók, aktív előfizetéssel. Hozzon létre ingyenes fiókot.
Konzolalkalmazás létrehozása
Ebben a szakaszban egy projektet fog létrehozni a Visual Studio 2022-ben. Ezután eszközöket fog hozzáadni az Azure-fejlesztéshez, a kód közzétételéhez és az eseményindítókat és hívási függvényeket figyelő függvényekhez. Végül beállítja a konzolnaplózást, amely letiltja az örökölt monitorozási eszközt, és engedélyezi az alapértelmezett szűréssel rendelkező konzolszolgáltatót.
Megjegyzés
A cikkben szereplő eljárások ellenőrzik a .NET 6.0-n futó .NET Core-konzolalkalmazások létrehozását.
Projekt létrehozása
A Visual Studióban válassza azÚj>projektfájlja> lehetőséget.
Az Új projekt létrehozása területen válassza a Konzolalkalmazás (C#) elemet, majd a Tovább gombot.
Az Új projekt konfigurálása területen adja a projektnek a WebJobsSDKSample nevet, majd válassza a Tovább lehetőséget.
Válassza ki a Cél keretrendszert , és válassza a Létrehozás lehetőséget. Ezt az oktatóanyagot a .NET 6.0-val ellenőrizték.
WebJobs NuGet-csomagok telepítése
Telepítse a legújabb WebJobs NuGet-csomagot. Ez a csomag tartalmazza a Microsoft.Azure.WebJobs (WebJobs SDK) szolgáltatást, amellyel közzéteheti a függvénykódot a WebJobsban Azure App Service.
Szerezze be a Microsoft.Azure.WebJobs.Extensions NuGet-csomag legújabb stabil 4.x verzióját.
A Visual Studióban lépjen az Eszközök>NuGet-csomagkezelő területre.
Válassza a Csomagkezelő konzol lehetőséget. Megjelenik a NuGet-parancsmagok listája, a dokumentációra mutató hivatkozás és egy
PM>
belépési pont.A következő parancsban cserélje le a elemet
<4_X_VERSION>
az 1. lépésben talált aktuális verziószámra.Install-Package Microsoft.Azure.WebJobs.Extensions -version <4_X_VERSION>
A Csomagkezelő konzolon hajtsa végre a parancsot. Megjelenik a bővítménylista, és automatikusan telepítheti.
A gazdagép létrehozása
A gazdagép a függvények futtatókörnyezeti tárolója, amely figyeli az eseményindítókat és meghívja a függvényeket. Az alábbi lépések létrehoznak egy gazdagépet, amely implementálja IHost
a -t, amely a ASP.NET Core általános gazdagépe.
Válassza a Program.cs lapot, távolítsa el a meglévő tartalmat, és adja hozzá az alábbi
using
utasításokat:using System.Threading.Tasks; using Microsoft.Extensions.Hosting;
A Program.cs fájlban adja hozzá a következő kódot:
namespace WebJobsSDKSample { class Program { static async Task Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } } } }
A ASP.NET Core a gazdagép konfigurációit a HostBuilder
példány metódusainak meghívásával állítja be. További információ: .NET Generic Host. A ConfigureWebJobs
bővítménymetódus inicializálja a WebJobs-gazdagépet. A fájlban ConfigureWebJobs
inicializáljon bizonyos kötésbővítményeket, például a Storage kötésbővítményt, és állítsa be ezeknek a bővítményeknek a tulajdonságait.
Konzolnaplózás engedélyezése
Állítsa be a ASP.NET Core naplózási keretrendszert használó konzolnaplózást. Ez a Microsoft.Extensions.Logging keretrendszer tartalmaz egy API-t, amely számos beépített és külső naplózási szolgáltatóval működik.
Szerezze
Microsoft.Extensions.Logging.Console
be a NuGet-csomag legújabb stabil verzióját, amely tartalmazza a következőt:Microsoft.Extensions.Logging
.A következő parancsban cserélje le a elemet
<6_X_VERSION>
az 1. lépésben talált aktuális verziószámra. A NuGet-csomag minden típusa egyedi verziószámmal rendelkezik.Install-Package Microsoft.Extensions.Logging.Console -version <6_X_VERSION>
A Csomagkezelő konzolon adja meg az aktuális verziószámot, és hajtsa végre a parancsot. Megjelenik a bővítménylista, és automatikusan telepítheti.
A Program.cs lapon adja hozzá a következő utasítást
using
:using Microsoft.Extensions.Logging;
A Program.cs területen folytatva adja hozzá a metódust a
ConfigureLogging
metódushozHostBuilder
aBuild
parancs előtt. AAddConsole
metódus hozzáadja a konzolnaplózást a konfigurációhoz.builder.ConfigureLogging((context, b) => { b.AddConsole(); });
A
Main
metódus így néz ki:static async Task Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); }); builder.ConfigureLogging((context, b) => { b.AddConsole(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } }
Ez a kiegészítés a következő módosításokat hajtja végre:
- Letiltja az irányítópult-naplózást. Az irányítópult egy örökölt monitorozási eszköz, és az irányítópult naplózása nem ajánlott nagy átviteli sebességű éles forgatókönyvekhez.
- Hozzáadja a konzolszolgáltatót az alapértelmezett szűréssel.
Most hozzáadhat egy függvényt, amelyet az Azure Storage-üzenetsorba érkező üzenetek aktiválnak.
Adjon hozzá egy függvényt
A függvények olyan kódegységek, amelyek ütemezés szerint futnak, események alapján aktiválódnak, vagy igény szerint futnak. Az eseményindítók egy szolgáltatáseseményt figyelnek. A WebJobs SDK környezetében az aktivált nem az üzembe helyezési módra hivatkozik. Az SDK-val létrehozott eseményvezérelt vagy ütemezett WebJobs-feladatokat mindig folyamatos WebJobs-feladatként kell üzembe helyezni, ha az "Always on" engedélyezve van.
Ebben a szakaszban egy Azure Storage-üzenetsor üzenetei által aktivált függvényt hoz létre. Először hozzá kell adnia egy kötési bővítményt az Azure Storage-hoz való csatlakozáshoz.
A Storage-kötésbővítmény telepítése
A WebJobs SDK 3. verziójától kezdve az Azure Storage-szolgáltatásokhoz való csatlakozáshoz külön Storage-kötési bővítménycsomagot kell telepítenie.
Megjegyzés
Az 5.x-től kezdődően a Microsoft.Azure.WebJobs.Extensions.Storage fel lett osztva a tárolási szolgáltatás szerint , és a AddAzureStorage()
bővítménymetódust szolgáltatástípus szerint migrálta.
Szerezze be a Microsoft.Azure.WebJobs.Extensions.Storage NuGet-csomag legújabb, 5.x-es verzióját.
A következő parancsban cserélje le a elemet
<5_X_VERSION>
az 1. lépésben talált aktuális verziószámra. A NuGet-csomag minden típusa egyedi verziószámmal rendelkezik.Install-Package Microsoft.Azure.WebJobs.Extensions.Storage -Version <5_X_VERSION>
A Csomagkezelő konzolon hajtsa végre a parancsot az aktuális verziószámmal a
PM>
belépési ponton.A Program.cs fájlban a
ConfigureWebJobs
bővítménymetódusban adja hozzá aAddAzureStorageQueues
metódust aHostBuilder
példányhoz (aBuild
parancs előtt) a Storage-bővítmény inicializálásához. Ekkor a metódus aConfigureWebJobs
következőképpen néz ki:builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); });
Adja hozzá a következő kódot a
Main
metódushoz abuilder
példányosítás után:builder.UseEnvironment(EnvironmentName.Development);
A fejlesztési módban való futtatás csökkenti az üzenetsorok exponenciális visszalépését, amely jelentősen késleltetheti az üzenet megkereséséhez és a függvény meghívásához szükséges időt. Ha végzett a fejlesztéssel és a teszteléssel, távolítsa el ezt a kódsort, vagy váltson át
Production
erre.A
Main
metódusnak most az alábbi példához hasonlóan kell kinéznie:static async Task Main() { var builder = new HostBuilder(); builder.UseEnvironment(EnvironmentName.Development); builder.ConfigureLogging((context, b) => { b.AddConsole(); }); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } }
Üzenetsor által aktivált függvény létrehozása
Az QueueTrigger
attribútum arra utasítja a futtatókörnyezetet, hogy hívja meg ezt a függvényt, amikor új üzenetet ír egy nevű Azure Storage-üzenetsorba queue
. Az üzenetsor üzenetének tartalmát a paraméter metóduskódja message
adja meg. A metódus törzse az eseményindító adatainak feldolgozása. Ebben a példában a kód csak naplózza az üzenetet.
A Megoldáskezelő kattintson a jobb gombbal a projektre, válassza azÚj elemhozzáadása>, majd az Osztály lehetőséget.
Nevezze el az új C#- osztályfájlt Functions.cs néven, és válassza a Hozzáadás lehetőséget.
A Functions.cs fájlban cserélje le a létrehozott sablont a következő kódra:
using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; namespace WebJobsSDKSample { public class Functions { public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger) { logger.LogInformation(message); } } }
A Functions osztályt úgy kell megjelölnie, hogy
public static
a futtatókörnyezet hozzáférhessen a metódushoz, és végrehajthassa azt. A fenti kódmintában, amikor egy üzenetet ad hozzá egy nevűqueue
üzenetsorhoz, a függvény végrehajtja a függvényt, és amessage
sztringet a naplókba írja. A monitorozott üzenetsor az alapértelmezett Azure Storage-fiókban található, amelyet a következő lépésben hoz létre.
A message
paraméternek nem kell sztringnek lennie. JSON-objektumhoz, bájttömbhöz vagy CloudQueueMessage objektumhoz is köthet. Lásd: Üzenetsor-eseményindító használata. Minden kötéstípushoz (például üzenetsorokhoz, blobokhoz vagy táblákhoz) más paramétertípusokat lehet kötni.
Azure-tárfiók létrehozása
A helyileg futó Azure Storage Emulator nem rendelkezik a WebJobs SDK által igényelt összes funkcióval. Létrehoz egy tárfiókot az Azure-ban, és konfigurálja a projektet a használatára.
Az általános célú v2-tárfiókok létrehozásáról az Azure Storage-fiók létrehozása című témakörben olvashat.
Keresse meg és másolja ki a kapcsolati sztring
A tárolás konfigurálásához kapcsolati sztring szükséges. A következő lépésekhez tartsa meg ezt a kapcsolati sztring.
A Azure Portal keresse meg a tárfiókot, és válassza a Beállítások lehetőséget.
A Beállítások területen válassza a Hozzáférési kulcsok lehetőséget.
Az 1. kulcs alatti Kapcsolati sztringnél válassza a Másolás a vágólapra ikont.
Tároló konfigurálása helyi futtatásra
A WebJobs SDK megkeresi a tárolási kapcsolati sztring az Azure-beli alkalmazásbeállításokban. Helyi futtatáskor ezt az értéket keresi a helyi konfigurációs fájlban vagy környezeti változókban.
Kattintson a jobb gombbal a projektre, válassza azÚj elemhozzáadása>, majd a JavaScript JSON-konfigurációs fájl lehetőséget, nevezze el az új fájlt appsettings.json fájlnak, majd válassza a Hozzáadás lehetőséget.
Az új fájlban adjon hozzá egy
AzureWebJobsStorage
mezőt az alábbi példához hasonlóan:{ "AzureWebJobsStorage": "{storage connection string}" }
Cserélje le a {storage kapcsolati sztring} elemet a korábban másolt kapcsolati sztring.
Válassza ki az appsettings.json fájlt Megoldáskezelő, majd a Tulajdonságok ablakban állítsa a Másolás kimeneti könyvtárba műveletet Másolás, ha újabb értékre.
Mivel ez a fájl kapcsolati sztring titkos kódot tartalmaz, nem szabad a fájlt távoli kódtárban tárolni. Miután közzétette a projektet az Azure-ban, hozzáadhatja ugyanazt a kapcsolati sztring alkalmazásbeállítást az alkalmazáshoz a Azure App Service.
Helyi tesztelés
Hozza létre és futtassa a projektet helyileg, és hozzon létre egy üzenetsort a függvény aktiválásához.
A Azure Portal keresse meg a tárfiókot, és válassza az Üzenetsorok lapot (1). Válassza a + Üzenetsor (2) lehetőséget, és adja meg az üzenetsor nevét az üzenetsor neveként (3). Ezután válassza az OK (4) lehetőséget.
Kattintson az új üzenetsorra, és válassza az Üzenet hozzáadása lehetőséget.
Az Üzenet hozzáadása párbeszédpanelen írja be a "Helló világ!" alkalmazás!szöveget az Üzenet szövegébe, majd kattintson az OK gombra. Ekkor megjelenik egy üzenet az üzenetsorban.
A projekt futtatásához nyomja le a Ctrl+F5 billentyűkombinációt.
A konzolon látható, hogy a futtatókörnyezet megtalálta a függvényt. Mivel a függvényben használta az
QueueTrigger
ProcessQueueMessage
attribútumot, a WebJobs-futtatókörnyezet figyeli a nevűqueue
üzenetsor üzeneteit. Amikor új üzenetet talál ebben az üzenetsorban, a futtatókörnyezet meghívja a függvényt, és átadja az üzenet sztringértékét.Vissza az Üzenetsor ablakba, és frissítse azt. Az üzenet eltűnt, mivel a helyileg futó függvény feldolgozta.
Zárja be a konzolablakot.
Itt az ideje, hogy közzétegye a WebJobs SDK-projektet az Azure-ban.
Üzembe helyezés az Azure-ban
Az üzembe helyezés során létre fog hozni egy App Service-példányt, ahol futtatni fogja a függvényeket. Amikor közzétesz egy .NET-konzolalkalmazást App Service az Azure-ban, az automatikusan WebJob-feladatként fut. További információ a közzétételről: WebJobs fejlesztése és üzembe helyezése a Visual Studióval.
Azure-erőforrások létrehozása
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 párbeszédpanelen válassza az Azurelehetőséget célként, majd válassza a Tovább lehetőséget.
Válassza az Azure WebJobslehetőséget az Adott cél területen, majd válassza a Tovább lehetőséget.
A fenti App Service példányok közül válassza a plusz (+) gombot az új Azure WebJobs-feladat létrehozásához.
A App Service (Windows) párbeszédpanelen használja az alábbi táblázatban található üzemeltetési beállításokat.
Beállítás Ajánlott érték Leírás Név Globálisan egyedi név Az új függvényalkalmazást azonosító egyedi név. Előfizetés Válassza ki az előfizetését A használandó előfizetés. Erőforráscsoport myResourceGroup Az erőforráscsoport neve, amelyben létrehozza a függvényalkalmazást. Válassza az Új elemet egy új erőforráscsoport létrehozásához. Üzemeltetési csomag App Service-csomag Az alkalmazást tároló webkiszolgálófarm helyét, méretét és funkcióit egy App Service-csomag határozza meg. Költségeket takaríthat meg, ha beállítja, hogy a webalkalmazások egyetlen közös App Service-csomag használatával több alkalmazást tároljanak. App Service csomagok határozzák meg a régiót, a példányméretet, a skálázási számot és a termékváltozatot (ingyenes, megosztott, alapszintű, standard vagy prémium). Új App Service-csomag létrehozásához válassza az Új lehetőséget. Az ingyenes és az alapszintű szintek nem támogatják az Always On lehetőséget, hogy a webhely folyamatosan fusson. Válassza a Létrehozás lehetőséget egy WebJob- és kapcsolódó erőforrás létrehozásához az Azure-ban ezekkel a beállításokkal, és helyezze üzembe a projektkódot.
A Közzététel lapra való visszatéréshez válassza a Befejezés lehetőséget.
Az Always On engedélyezése
Folyamatos WebJobs-feladat esetén engedélyeznie kell az Always on beállítást a webhelyen, hogy a WebJobs-feladatok megfelelően fussanak. Ha nem engedélyezi az Always on beállítást, a futtatókörnyezet néhány perc inaktivitás után tétlen lesz.
A Közzététel lapon válassza az Üzemeltetés fölötti három pontot az Üzemeltetési profil szakaszműveletek megjelenítéséhez, majd válassza a Megnyitás Azure Portal lehetőséget.
A Beállítások területen válassza az Általános konfigurációs>beállítások lehetőséget, állítsa a Mindigbekapcsolva beállítást, majd válassza a Mentés és folytatás lehetőséget a webhely újraindításához.
A projekt közzététele
Az Azure-ban létrehozott webalkalmazással ideje közzétenni a WebJobs-projektet.
A Közzététel lap Üzemeltetés területén válassza a szerkesztés gombot, módosítsa a WebJob típust értékre
Continuous
, majd válassza a Mentés lehetőséget. Ez biztosítja, hogy a WebJob futjon, amikor üzeneteket ad hozzá az üzenetsorhoz. Az aktivált WebJobs-feladatokat általában csak manuális webhookokhoz használják.Válassza a Közzététel gombot a Közzététel lap jobb felső sarkában. A művelet befejezése után a WebJobs-feladat az Azure-ban fut.
Tárolókapcsolat alkalmazásbeállításának létrehozása
Létre kell hoznia ugyanazt a tárolási kapcsolati sztring beállítást az Azure-ban, amelyet helyileg használt az appsettings.json konfigurációs fájlban. Így biztonságosabban tárolhatja a kapcsolati sztring és a
A Profil közzététele lapon válassza az Üzemeltetés fölötti három pontot az Üzemeltetési profil szakaszműveletek megjelenítéséhez, majd válassza a Manage Azure App Service settings (Azure App Service beállítások kezelése) lehetőséget.
Az Alkalmazásbeállítások területen válassza a + Beállítás hozzáadása lehetőséget.
Az Új alkalmazásbeállítás neve mezőbe írja be
AzureWebJobsStorage
, majd válassza az OK gombot.A Távoli területen illessze be a kapcsolati sztring a helyi beállításból, és válassza az OK gombot.
A kapcsolati sztring most már be van állítva az azure-beli alkalmazásban.
A függvény aktiválása az Azure-ban
Győződjön meg arról, hogy nem helyileg fut. Ha még mindig nyitva van, zárja be a konzolablakot. Ellenkező esetben előfordulhat, hogy a helyi példány dolgozza fel először a létrehozott üzenetsor-üzeneteket.
A Visual Studio Üzenetsor lapján adjon hozzá egy üzenetet az üzenetsorhoz a korábbiakhoz hasonlóan.
Frissítse az Üzenetsor lapot, és az új üzenet eltűnik, mert az Azure-ban futó függvény feldolgozta.
Application Insights-naplózás engedélyezése
Amikor a WebJob az Azure-ban fut, a konzol kimenetének megtekintésével nem figyelheti a függvények végrehajtását. A WebJob monitorozásához létre kell hoznia egy társított Application Insights-példányt a projekt közzétételekor.
Application Insights-példány létrehozása
A Profil közzététele lapon válassza ki az Üzemeltetés fölötti három pontot az Üzemeltetési profil szakaszműveletek megjelenítéséhez, majd válassza a Megnyitás az Azure Portalon lehetőséget.
A webalkalmazás Beállítások területén válassza az Application Insights lehetőséget, majd válassza az Application Insights bekapcsolása lehetőséget.
Ellenőrizze a példány és a hely létrehozott erőforrásnevét, majd válassza az Alkalmaz lehetőséget.
A Beállítások területen válassza a Konfiguráció lehetőséget, és ellenőrizze, hogy létre lett-e hozva egy új
APPINSIGHTS_INSTRUMENTATIONKEY
. Ezzel a kulccsal csatlakoztathatja a WebJob-példányt az Application Insightshoz.
Az Application Insights-naplózás előnyeinek kihasználásához frissítenie kell a naplózási kódot is.
Az Application Insights bővítmény telepítése
Szerezze be a Microsoft.Azure.WebJobs.Logging.ApplicationInsights NuGet-csomag legújabb, 3.x-es verzióját.
A következő parancsban cserélje le a elemet
<3_X_VERSION>
az 1. lépésben található aktuális verziószámra. A NuGet-csomag minden típusa egyedi verziószámmal rendelkezik.Install-Package Microsoft.Azure.WebJobs.Logging.ApplicationInsights -Version <3_X_VERSION>
A Package Manager konzolon hajtsa végre a parancsot az aktuális verziószámmal a
PM>
belépési ponton.
Az Application Insights naplózási szolgáltatójának inicializálása
Nyissa meg a Program.cs fájlt , és adja hozzá a következő inicializálót a ConfigureLogging
hívás után a következőhöz AddConsole
:
// If the key exists in settings, use it to enable Application Insights.
string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(instrumentationKey))
{
b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
}
A Main
metóduskódnak most az alábbi példához hasonlóan kell kinéznie:
static async Task Main()
{
var builder = new HostBuilder();
builder.UseEnvironment(EnvironmentName.Development);
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorage();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
// If the key exists in settings, use it to enable Application Insights.
string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(instrumentationKey))
{
b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
}
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
Ez inicializálja az Application Insights naplózási szolgáltatót az alapértelmezett szűréssel. Helyi futtatáskor az összes információ és magasabb szintű napló a konzolra és az Application Insightsra is meg lesz írva.
A projekt ismételt közzététele és a függvény ismételt aktiválása
A Megoldáskezelőben kattintson a jobb gombbal a projektre, és válassza a Publish (Közzététel) lehetőséget.
A korábbiakhoz hasonlóan a Azure Portal is létrehozhat egy üzenetsor-üzenetet, kivéve a Hello App Insights! kifejezést az üzenet szövegeként.
A Profil közzététele lapon válassza ki az Üzemeltetés fölötti három pontot az Üzemeltetési profil szakaszműveletek megjelenítéséhez, majd válassza a Megnyitás az Azure Portalon lehetőséget.
A webalkalmazás Beállítások csoportjában válassza az Application Insights lehetőséget, majd válassza az Application Insights-adatok megtekintése lehetőséget.
Válassza a Keresés lehetőséget, majd válassza az Összes adat megtekintése az elmúlt 24 órában lehetőséget.
Ha nem látja a Hello App Insights! üzenetet, válassza a Rendszeres frissítés néhány percig lehetőséget. A naplók nem jelennek meg azonnal, mert időbe telik, amíg az Application Insights-ügyfél kiüríti az általa feldolgozott naplókat.
Bemeneti/kimeneti kötések hozzáadása
A kötések leegyszerűsítik az adatokat beolvasó és író kódot. A bemeneti kötések leegyszerűsítik az adatokat beolvasó kódot. A kimeneti kötések leegyszerűsítik az adatokat író kódot.
Kötések hozzáadása
A bemeneti kötések leegyszerűsítik az adatokat beolvasó kódot. Ebben a példában az üzenetsor egy blob neve, amellyel megkereshet és elolvashat egy blobot az Azure Storage-ban. Ezután kimeneti kötések használatával fogja írni a fájl másolatát ugyanarra a tárolóra.
A Functions.cs fájlban adja hozzá a következőt
using
:using System.IO;
Cserélje le az
ProcessQueueMessage
metódust az alábbi kódra:public static void ProcessQueueMessage( [QueueTrigger("queue")] string message, [Blob("container/{queueTrigger}", FileAccess.Read)] Stream myBlob, [Blob("container/copy-{queueTrigger}", FileAccess.Write)] Stream outputBlob, ILogger logger) { logger.LogInformation($"Blob name:{message} \n Size: {myBlob.Length} bytes"); myBlob.CopyTo(outputBlob); }
Ebben a kódban
queueTrigger
egy kötési kifejezés, ami azt jelenti, hogy futásidőben egy másik értékre oldódik fel. Futtatókörnyezetben az üzenetsor tartalmát tartalmazza.Ez a kód kimeneti kötésekkel hozza létre az üzenetsor-üzenet által azonosított fájl másolatát. A fájlmásolás előtagja a copy-.
A Program.cs bővítménymetódusában
ConfigureWebJobs
adja hozzá aAddAzureStorageBlobs
metódust aHostBuilder
példányhoz (aBuild
parancs előtt) a Storage-bővítmény inicializálásához. Ezen a ponton a metódus aConfigureWebJobs
következőképpen néz ki:builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorageQueues(); b.AddAzureStorageBlobs(); });
Hozzon létre egy blobtárolót a tárfiókban.
a. A Azure Portal lépjen az Adattárolás alatti Tárolók lapra, és válassza a + Tároló lehetőséget.
b. Az Új tároló párbeszédpanelen adja meg a tárolót tárolónévként, majd válassza a Létrehozás lehetőséget.
Töltse fel a Program.cs fájlt a blobtárolóba. (Ez a fájl használható példaként, bármilyen szövegfájlt feltölthet, és létrehozhat egy üzenetsor-üzenetet a fájl nevével.)
a. Válassza ki a létrehozott új tárolót
b. Kattintson a Feltöltés gombra.
c. Keresse meg és válassza a Program.cs elemet, majd kattintson az OK gombra.
A projekt ismételt közzététele
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 párbeszédpanelen győződjön meg arról, hogy az aktuális profil ki van jelölve, majd válassza a Közzététel lehetőséget. A közzététel eredményeit a Kimenet ablakban találja.
Hozzon létre egy üzenetsor-üzenetet a korábban létrehozott üzenetsorban, amelynek szövege a Program.cs .
A fájl másolata ( copy-Program.cs) megjelenik a blobtárolóban.
Következő lépések
Ez az oktatóanyag bemutatja, hogyan hozhat létre, futtathat és helyezhet üzembe Egy WebJobs SDK 3.x-projektet.