Oktatóanyag: Ismerkedés az Azure WebJobs SDK-val az eseményvezérelt háttérfeldolgozáshoz
Ismerkedés a Azure-alkalmazás Service-hez készült Azure WebJobs SDK-val, amellyel a webalkalmazások háttérfeladatokat, ütemezett feladatokat futtathatnak és eseményekre válaszolhatnak.
A Visual Studio 2022 használatával hozzon létre egy .NET 8-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
- Az Application Insights naplózásának 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 feladatával. Telepítse a Visual Studio 2022-t.
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Konzolalkalmazás létrehozása
Ebben a szakaszban egy projektet hoz létre a Visual Studio 2022-ben. Ezután olyan eszközöket fog hozzáadni az Azure-fejlesztéshez, a kód közzétételéhez és a függvényekhez, amelyek figyelik az eseményindítókat és a függvényeket. Végül beállítja a konzolnaplózást, amely letilt egy régi monitorozási eszközt, és engedélyezi az alapértelmezett szűrést biztosító konzolszolgáltatót.
Feljegyzés
A cikkben szereplő eljárások ellenőrzöttek a .NET 8.0-n futó C#-konzolalkalmazások létrehozásához.
Projekt létrehozása
A Visual Studióban válassza az Új>projekt fájlja>lehetőséget.
Az Új projekt létrehozása csoportban válassza a Konzolalkalmazás (C#) lehetőséget, majd a Tovább gombot.
Az új projekt konfigurálása területen nevezze el a projekt WebJobsSDKSample nevét, majd válassza a Tovább gombot.
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, amely lehetővé teszi a függvénykód közzétételét a WebJobsban a Azure-alkalmazás Szolgáltatásban.
Szerezze be a Microsoft.Azure.WebJobs.Extensions NuGet csomag legújabb stabil 4.x verzióját.
A Visual Studióban nyissa meg a Tools>NuGet Csomagkezelő.
Válassza 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.Az alábbi parancsban cserélje le
<4_X_VERSION>
az 1. lépésben talált aktuális verziószámot.Install-Package Microsoft.Azure.WebJobs.Extensions -version <4_X_VERSION>
Feljegyzés
A cikkben szereplő mintakód a 4.x csomagverzióval működik. Győződjön meg arról, hogy 4.x verziót használ, mert buildelési hibákat kap az 5.x csomagverzió használatakor.
A Csomagkezelő konzolon hajtsa végre a parancsot. Megjelenik és automatikusan telepíti a bővítménylistát.
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 a függvényeket. Az alábbi lépések létrehoznak egy gazdagépet, amely implementálja IHost
a ASP.NET Core általános gazdagépét.
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 alatt 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-ban a gazdagépkonfigurációk a példány metódusainak HostBuilder
meghívásával vannak beállítva. További információ: .NET Generic Host. A ConfigureWebJobs
bővítménymetódus inicializálja a WebJobs-gazdagépet. Inicializáljon ConfigureWebJobs
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
A ASP.NET Core naplózási keretrendszert használó konzolnaplózás beállítása. Ez a Microsoft.Extensions.Logging keretrendszer olyan API-t tartalmaz, amely számos beépített és külső naplózási szolgáltatóval működik.
Szerezze be a NuGet-csomag legújabb stabil verzióját, amely tartalmazza a
Microsoft.Extensions.Logging.Console
Microsoft.Extensions.Logging
.Az alábbi parancsban cserélje le
<9_X_VERSION>
az 1. lépésben talált aktuális verziószámot. A NuGet-csomag minden típusa egyedi verziószámmal rendelkezik.Install-Package Microsoft.Extensions.Logging.Console -version <9_X_VERSION>
A Csomagkezelő konzolon adja meg az aktuális verziószámot, és hajtsa végre a parancsot. Megjelenik és automatikusan telepíti a bővítménylistát.
A tabulátor Program.cs alatt adja hozzá a következő utasítást
using
:using Microsoft.Extensions.Logging;
A Program.cs alatt folytatva adja hozzá a
ConfigureLogging
metódustHostBuilder
aBuild
parancs előtt. AAddConsole
metódus hozzáadja a konzolnaplózást a konfigurációhoz.builder.ConfigureLogging((context, b) => { b.SetMinimumLevel(LogLevel.Error); b.AddFilter("Function", LogLevel.Information); b.AddFilter("Host", LogLevel.Debug); b.AddConsole(); });
Ez hozzáadja a naplózást, amely rögzíti a függvényvégrehajtások naplókimenetét a
Information
szinten, a gazdagépet aDebug
szinten, és azerror
összes többi összetevő szintjét. AMain
metódus így néz ki:static async Task Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); }); builder.ConfigureLogging((context, b) => { b.SetMinimumLevel(LogLevel.Error); b.AddFilter("Function", LogLevel.Information); b.AddFilter("Host", LogLevel.Debug); b.AddConsole(); }); var host = builder.Build(); using (host) { await host.RunAsync(); } }
Ez a módosí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égi monitorozási eszköz, és az irányítópult naplózása nem ajánlott nagy átviteli sebességű éles helyzetekben.
- Hozzáadja a konzolszolgáltatót 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 kontextusában az aktivált nem az üzembe helyezési módra hivatkozik. Az SDK használatával létrehozott eseményvezérelt vagy ütemezett WebJobs-feladatokat mindig folyamatos WebJobs-feladatként kell üzembe helyezni, engedélyezve az "Always on" lehetőséget.
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ésbővítmény-csomagot kell telepítenie.
Feljegyzés
Az 5.x-től kezdődően a Microsoft.Azure.WebJobs.Extensions.Storage fel lett osztva a tárolási szolgáltatással , és szolgáltatástípus szerint migrálta a AddAzureStorage()
bővítménymetódust. Ehhez a verzióhoz az SDK által használt szerelvény verzióját Microsoft.Azure.WebJobs.Host.Storage
is frissítenie kell.
Szerezze be a Microsoft.Azure.WebJobs.Extensions.Storage NuGet csomag legújabb, 5.x-es verzióját.
Az alábbi parancsban cserélje le
<5_X_VERSION>
az 1. lépésben talált aktuális verziószámot. 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.Futtassa ezt a parancsot is a
Microsoft.Azure.WebJobs.Host.Storage
csomag 4.1.0-s verzióra való frissítéséhez:Install-Package Microsoft.Azure.WebJobs.Host.Storage -Version 4.1.0
A Program.cs a bővítménymetódusban
ConfigureWebJobs
adja hozzá aAddAzureStorageQueues
metódust aHostBuilder
példányhoz (a parancs előtt) aBuild
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(); });
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 üzenetsor-lekérdezés 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 rá
Production
.A
Main
metódusnak most a következő 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.AddAzureStorageQueues(); }); builder.ConfigureLogging((context, b) => { b.SetMinimumLevel(LogLevel.Error); b.AddFilter("Function", LogLevel.Information); b.AddFilter("Host", LogLevel.Debug); b.AddConsole(); }); 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 egy új üzenetet írnak egy Azure Storage-üzenetsorra, amelynek neve queue
. Az üzenetsor-üzenet tartalmát a paraméter metóduskódja adja meg message
. A metódus törzse az, ahol feldolgozza az eseményindító adatait. 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 elem hozzáadása>, majd az Osztály lehetőséget.
Nevezze el az új C#-osztályfájlt Functions.cs, és válassza a Hozzáadás lehetőséget.
A Functions.cs cserélje le a létrehozott sablont a következő kódra:
using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; namespace WebJobsSDKSample { public static class Functions { public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger) { logger.LogInformation(message); } } }
A Függvények osztályt úgy kell megjelölni, hogy
public static
a futtatókörnyezet hozzáférjen a metódushoz és végrehajthassa azt. A fenti kódmintában, amikor egy üzenetet ad hozzá egy elnevezettqueue
üzenetsorhoz, a függvény végrehajtja a függvényt, és amessage
sztringet a naplókba írja. A figyelt üzenetsor az alapértelmezett Azure Storage-fiókban van, 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 kapcsolódhat.
Lásd: Üzenetsor-eseményindító használata. Minden kötéstípus (például üzenetsorok, blobok vagy táblák) különböző paramétertípusokkal rendelkezik, amelyekhez kapcsolódhat.
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 annak 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 a kapcsolati sztring
A tárolás konfigurálásához kapcsolati sztring szükséges. A következő lépéseknél tartsa meg ezt a kapcsolati sztring.
Az Azure Portalon lépjen a tárfiókra, és válassza a Beállítások lehetőséget.
A Beállítások területen válassza az Access-kulcsokat.
Az 1. kulcs alatti kapcsolati sztringnél válassza a Vágólapra másolás ikont.
Tároló konfigurálása helyi futtatásra
A WebJobs SDK az Azure-beli alkalmazásbeállításokban keresi a tárolási kapcsolati sztring. Helyi futtatáskor ezt az értéket keresi a helyi konfigurációs fájlban vagy a környezeti változókban.
Kattintson a jobb gombbal a projektre, válassza az Új elem hozzáadása>, a JavaScript JSON konfigurációs fájl, az új fájl neve appsettings.json fájl, majd a Hozzáadás lehetőséget.
Az új fájlban adjon hozzá egy
AzureWebJobsStorage
mezőt, ahogyan az alábbi példában is látható:{ "AzureWebJobsStorage": "{storage connection string}" }
Cserélje le a(z) {storage kapcsolati sztring} elemet a korábban másolt kapcsolati sztring.
Válassza ki a appsettings.json fájlt a Megoldáskezelő és a Tulajdonságok ablakban, állítsa a Másolás kimeneti könyvtárra műveletet másolásra, ha újabb.
Mivel ez a fájl egy kapcsolati sztring titkos kulcsot tartalmaz, nem szabad a fájlt távoli kódtárban tárolni. Miután közzétette a projektet az Azure-ban, ugyanezt a kapcsolati sztring alkalmazásbeállítást is hozzáadhatja az alkalmazáshoz a Azure-alkalmazás Service-ben.
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.
Az Azure Portalon lépjen a tárfiókra, és válassza az Üzenetsorok lapot (1). Válassza a + Üzenetsor (2) lehetőséget, és adja meg az üzenetsor nevét (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 az attribútumot a
QueueTrigger
ProcessQueueMessage
függvényben használta, a WebJobs-futtatókörnyezet figyeli a névvel ellátottqueue
üzenetsor üzeneteit. Amikor új üzenetet talál ebben az üzenetsorban, a futtatókörnyezet meghívja a függvényt, és átadja az üzenetsztring értékét.Térjen vissza az Üzenetsor ablakhoz, és frissítse azt. Az üzenet eltűnt, mivel a helyileg futó függvény feldolgozta.
Zárja be a konzolablakot, vagy írja be a Ctrl+C billentyűkombinációt.
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 kell hoznia egy App Service-példányt, ahol futtatni fogja a függvényeket. Amikor közzétesz egy .NET-konzolalkalmazást az App Service-ben az Azure-ban, az automatikusan WebJob-feladatként fut. A közzétételről további információt a WebJobs fejlesztése és üzembe helyezése a Visual Studióval című témakörben talál.
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 Azure for Target, majd a Tovább gombot.
Válassza az Adott célhoz tartozó Azure WebJobs lehetőséget, majd válassza a Tovább lehetőséget.
Az App Service-példányok felett válassza a plusz (+) gombot egy új Azure WebJob létrehozásához.
Az App Service (Windows) párbeszédpanelen használja az alábbi táblázatban szereplő ü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. Szolgáltatá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. Az App Service-csomagok határozzák meg a régiót, a példányméretet, a méretezési számot és az 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. A Létrehozás lehetőséget választva webfeladatot és kapcsolódó erőforrásokat hozhat létre az Azure-ban ezekkel a beállításokkal, és üzembe helyezheti a projektkódot.
Válassza a Befejezés lehetőséget a Közzététel lapra való visszatéréshez.
Az Always On engedélyezése
Folyamatos WebJob-feladatok esetén engedélyeznie kell az Always on beállítást a webhelyen, hogy a WebJobs megfelelően fusson. 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 ki az Üzemeltetés fölötti három pontot az Üzemeltetési profil szakaszműveletek megjelenítéséhez, és válassza a Megnyitás az Azure Portalon 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 be aMindig be 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 Tárhely alatti Közzététel lapon válassza a szerkesztés gombot, és módosítsa a WebJob típust a
Continuous
Mentés gombra. Ez biztosítja, hogy a WebJob futjon, amikor üzeneteket adnak 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 WebJob az Azure-ban fut.
Tárkapcsolat 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 a appsettings.json konfigurációs fájlban. Így biztonságosabban tárolhatja a kapcsolati sztring és
A Közzétételi profil lapon válassza az Üzemeltetés fölötti három pontot az üzemeltetési profilszakasz műveleteinek megjelenítéséhez, majd válassza a Azure-alkalmazás szolgáltatás beállításainak 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ás beállítás neve mezőbe írja be
AzureWebJobsStorage
és válassza az OK gombot.A Távoli fájlban 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 alkalmazásban az Azure-ban.
A függvény aktiválása az Azure-ban
Győződjön meg arról, hogy nem helyileg fut. Zárja be a konzolablakot, ha még mindig nyitva van. Ellenkező esetben előfordulhat, hogy a helyi példány dolgozza fel elsőként a létrehozott üzenetsor-üzeneteket.
A Visual Studio Üzenetsor lapján adjon hozzá egy üzenetet az üzenetsorhoz a korábbiakhoz hasonlóan.
Frissítse a Várólista lapot, és az új üzenet eltűnik, mert az Azure-ban futó függvény feldolgozta.
Az Application Insights naplózásának 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 Közzétételi profil lapon válassza ki az Üzemeltetés fölötti három pontot az üzemeltetési profilszakasz műveleteinek megjelenítéséhez, és válassza a Megnyitás az Azure Portalon lehetőséget.
A Monitorozás alatti webalkalmazásban válassza az Application Insights lehetőséget, és 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, majd az Igen lehetőséget.
A Beállítások területen válassza a Környezeti változók lehetőséget, és ellenőrizze, hogy létrejött-e új
APPINSIGHTS_INSTRUMENTATIONKEY
. Ezzel a kulccsal csatlakoztathatja a WebJob-példányt az Application Insightshoz.
Az Application Insights naplózásának 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.
Az alábbi parancsban cserélje le
<3_X_VERSION>
az 1. lépésben talált aktuális verziószámot. A NuGet-csomag minden típusa egyedi verziószámmal rendelkezik.Install-Package Microsoft.Azure.WebJobs.Logging.ApplicationInsights -Version <3_X_VERSION>
A Csomagkezelő 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 , és adja hozzá a következő inicializálót a ConfigureLogging
következő hívás AddConsole
után:
// 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 a következő 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.AddAzureStorageQueues();
});
builder.ConfigureLogging((context, b) =>
{
b.SetMinimumLevel(LogLevel.Error);
b.AddFilter("Function", LogLevel.Information);
b.AddFilter("Host", LogLevel.Debug);
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 alapértelmezett szűréssel. Helyi futtatáskor a rendszer minden információt és magasabb szintű naplót a konzolra és az Application Insightsba is ír. Helyi futtatáskor az Application Insights naplózása csak akkor támogatott, ha a APPINSIGHTS_INSTRUMENTATIONKEY
fájlt is hozzáadta a appsetting.json
projekthez.
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.
Ahogyan korábban, az Azure Portalon is létrehozhat egy üzenetsor-üzenetet, mint korábban, kivéve, hogy a Hello App Insights! szöveget írja be üzenetszövegként.
A Közzétételi profil lapon válassza ki az Üzemeltetés fölötti három pontot az üzemeltetési profilszakasz műveleteinek megjelenítéséhez, és válassza a Megnyitás az Azure Portalon lehetőséget.
A webalkalmazás Beállítások>monitorozása területén válassza az Application Insights lehetőséget, és 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 megjelenítése az elmúlt 24 órában lehetőséget.
Ha nem látja a Hello App Insights! üzenetet, néhány percig válassza a Frissítés lehetőséget. A naplók nem jelennek meg azonnal, mert időbe telik, amíg az Application Insights-ügyfél kiüríti a feldolgozandó 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-üzenet egy blob neve, amellyel megkereshet és elolvashat egy blobot az Azure Storage-ban. Ezután kimeneti kötésekkel fogja írni a fájl másolatát ugyanarra a tárolóra.
A Functions.cs 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. Futásidőben az üzenetsor üzenetének tartalma van benne.Ez a kód kimeneti kötésekkel hozza létre az üzenetsor-üzenet által azonosított fájl másolatát. A fájl másolata előtaggal van elnevezett másolattal.
A Program.cs bővítménymetódusában
ConfigureWebJobs
adja hozzá aAddAzureStorageBlobs
metódust aHostBuilder
példányhoz (a parancs előtt) aBuild
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. Az Azure Portalon 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ó nevét, 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 példaként szolgál erre a fájlra, 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, majd az OK gombot.
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, és Program.cs az üzenet szövegeként.
A fájl egy példánya ( copy-Program.cs) megjelenik a blobtárolóban.
Következő lépések
Ez az oktatóanyag bemutatta, hogyan hozhat létre, futtathat és helyezhet üzembe WebJobs SDK 3.x-projektet.