WebJobs fejlesztése és üzembe helyezése a Visual Studióval

Ez a cikk bemutatja, hogyan helyezhet üzembe egy konzolalkalmazás-projektet a Visual Studióval egy webalkalmazásban Azure App ServiceAzure WebJob-feladatként. A WebJobs Azure Portal használatával történő üzembe helyezésével kapcsolatos további információkért lásd: Háttérfeladatok futtatása a WebJobs használatával Azure App Service.

Létrehozhat egy .NET Core-alkalmazásként vagy .NET-keretrendszer alkalmazásként futó WebJob-feladatot. Az Azure WebJobs SDK 3.x-es verziója lehetővé teszi a .NET Core-alkalmazásokként vagy .NET-keretrendszer alkalmazásokként futó WebJobs fejlesztését, míg a 2.x verzió csak a .NET-keretrendszer támogatja. A WebJobs-projektek üzembe helyezésének módja eltér a .NET Core-projekteknél, mint .NET-keretrendszer projekteknél.

Egyetlen webalkalmazásban több WebJobs-feladatot is közzétehet, feltéve, hogy egy webalkalmazás minden WebJob-feladatának egyedi neve van.

WebJobs .NET Core-konzolalkalmazásként

Az Azure WebJobs SDK 3.x verziójával .NET Core-konzolalkalmazásokként hozhat létre és tehet közzé WebJobs-fájlokat. A .NET Core-konzolalkalmazások WebJobként való létrehozásához és az Azure-ban való közzétételéhez részletes útmutatásért lásd: Az Azure WebJobs SDK használatának első lépései az eseményvezérelt háttérfeldolgozáshoz.

Megjegyzés

A .NET Core Web Apps és/vagy a .NET Core WebJobs nem kapcsolható össze webes projektekkel. Ha webalkalmazással kell üzembe helyeznie a WebJobot, hozza létre a WebJobs-feladatokat .NET-keretrendszer konzolalkalmazásként.

Üzembe helyezés az Azure App Service-ben

A .NET Core WebJob Visual Studióból Azure App Service való közzététele ugyanazt az eszközt használja, mint egy ASP.NET Core-alkalmazás közzététele.

  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 párbeszédpanelen válassza az Azure for Target elemet, majd válassza a Tovább gombot.

  3. Válassza az Azure WebJobslehetőséget az Adott célhoz, majd válassza a Tovább gombot.

  4. A fenti App Service példányok közül válassza a plusz (+) gombot az új Azure WebJob létrehozásához.

  5. 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 a webhely folyamatos futtatásához.

    App Service létrehozása párbeszédpanel

  6. Válassza a Létrehozás lehetőséget, ha webfeladatot és kapcsolódó erőforrásokat szeretne létrehozni az Azure-ban ezekkel a beállításokkal, és üzembe szeretné helyezni a projektkódot.

  7. A Közzététel lapra való visszatéréshez válassza a Befejezés lehetőséget.

WebJobs .NET-keretrendszer konzolalkalmazásként

Ha a Visual Studióval helyez üzembe egy WebJobs-kompatibilis .NET-keretrendszer-konzolalkalmazás-projektet, akkor a futtatókörnyezeti fájlokat a webalkalmazás megfelelő mappájába másolja (App_Data/feladatok/folyamatos a folyamatos WebJobs-feladatokhoz és App_Data/feladatokhoz/aktiválva ütemezett vagy igény szerinti WebJobs esetén).

A Visual Studio a következő elemeket adja hozzá egy WebJobs-kompatibilis projekthez:

A konzolalkalmazások webjobként való üzembe helyezésének engedélyezéséhez hozzáadott elemeket bemutató ábra

Ezeket az elemeket hozzáadhatja egy meglévő konzolalkalmazás-projekthez, vagy sablon használatával létrehozhat egy új WebJobs-kompatibilis konzolalkalmazás-projektet.

Egy projektet önállóan helyezhet üzembe WebJob-feladatként, vagy csatolhatja egy webes projekthez, hogy automatikusan üzembe helyezhesse a webes projekt telepítésekor. A projektek összekapcsolásához a Visual Studio a webprojekt webjobs-list.json fájljában tartalmazza a WebJobs-kompatibilis projekt nevét.

WebJob-projekt webes projekthez csatolását ábrázoló ábra

Előfeltételek

Telepítse a Visual Studio 2022-t az Azure fejlesztési számítási feladatával.

A WebJobs üzembe helyezésének engedélyezése meglévő konzolalkalmazás-projekthez

Erre két lehetősége van:

  • Az automatikus üzembe helyezés engedélyezése webes projekttel.

    Konfiguráljon egy meglévő konzolalkalmazás-projektet úgy, hogy az automatikusan WebJobként legyen üzembe helyezve egy webes projekt üzembe helyezésekor. Ezt a lehetőséget akkor használja, ha a WebJob-feladatot ugyanabban a webalkalmazásban szeretné futtatni, amelyben a kapcsolódó webalkalmazást futtatja.

  • Az üzembe helyezés engedélyezése webes projekt nélkül.

    Konfiguráljon egy meglévő konzolalkalmazás-projektet úgy, hogy önmagában WebJob-feladatként legyen üzembe helyezve, webes projektre mutató hivatkozás nélkül. Ezt a lehetőséget akkor használhatja, ha egy webalkalmazásban önmagában szeretne webfeladatot futtatni, és nem fut webalkalmazás a webalkalmazásban. Érdemes lehet a WebJob-erőforrásokat a webalkalmazás erőforrásaitól függetlenül skálázni.

  1. Kattintson a jobb gombbal a webes projektre Megoldáskezelő, majd válassza a Meglévő projekt hozzáadása>Azure WebJobként lehetőséget.

    Meglévő projekt Azure WebJobként

    Megjelenik az Azure WebJob hozzáadása párbeszédpanel.

  2. A Projekt neve legördülő listában válassza ki azt a konzolalkalmazás-projektet, amely WebJob-feladatként van hozzáadva.

    Projekt kiválasztása az Azure WebJob hozzáadása párbeszédpanelen

  3. Töltse ki az Azure WebJob hozzáadása párbeszédpanelt, majd kattintson az OK gombra.

  1. Kattintson a jobb gombbal a konzolalkalmazás-projektre a Megoldáskezelő, majd válassza a Közzététel Azure WebJobként lehetőséget.

    Közzététel Azure WebJobként

    Megjelenik az Azure WebJob hozzáadása párbeszédpanel, amelyen a projekt ki van jelölve a Projekt neve mezőben.

  2. Töltse ki az Azure WebJob hozzáadása párbeszédpanelt, majd kattintson az OK gombra.

    Megjelenik a Webes közzététel varázsló. Ha nem szeretne azonnal közzétenni, zárja be a varázslót. A megadott beállítások a projekt üzembe helyezésekor lesznek mentve.

Új WebJobs-kompatibilis projekt létrehozása

Új WebJobs-kompatibilis projekt létrehozásához használja a konzolalkalmazás projektsablonját, és engedélyezze a WebJobs üzembe helyezését az előző szakaszban leírtak szerint. Alternatív megoldásként használhatja a WebJobs new-project sablont:

  • A WebJobs new-project sablon használata független WebJob-feladathoz

    Hozzon létre egy projektet, és konfigurálja úgy, hogy önmagában webjobként legyen üzembe helyezve, webes projektre mutató hivatkozás nélkül. Ezt a lehetőséget akkor használhatja, ha egy webalkalmazásban önmagában szeretne webfeladatot futtatni, és nem fut webalkalmazás a webalkalmazásban. Érdemes lehet a WebJob-erőforrásokat a webalkalmazás erőforrásaitól függetlenül skálázni.

  • WebProjekthez csatolt WebJobs new-project sablon használata

    Hozzon létre egy olyan projektet, amely úgy van konfigurálva, hogy automatikusan üzembe legyen helyezve WebJobként, amikor egy webprojektet ugyanabban a megoldásban helyez üzembe. Ezt a lehetőséget akkor használja, ha a WebJob-feladatot ugyanabban a webalkalmazásban szeretné futtatni, amelyben a kapcsolódó webalkalmazást futtatja.

Megjegyzés

A WebJobs new-project sablon automatikusan telepíti a NuGet-csomagokat, és kódot tartalmaz a WebJobs SDKProgram.cs fájljában. Ha nem szeretné használni a WebJobs SDK-t, távolítsa el vagy módosítsa az utasítást a host.RunAndBlockProgram.cs fájlban.

  1. Válassza azÚj>projektfájlja> lehetőséget. Az Új projekt létrehozása párbeszédpanelen keresse meg és válassza az Azure WebJob (.NET-keretrendszer) lehetőséget a C# számára.

  2. Kövesse az előző utasításokat, hogy a konzolalkalmazás projektje független WebJobs-projekt legyen.

  1. Kattintson a jobb gombbal a webes projektre a Megoldáskezelő, majd válassza azÚj Azure WebJob-projekthozzáadása> lehetőséget.

    Új Azure WebJob Project-menübejegyzés

    Megjelenik az Azure WebJob hozzáadása párbeszédpanel.

  2. Töltse ki az Azure WebJob hozzáadása párbeszédpanelt, majd kattintson az OK gombra.

webjob-publish-settings.json fájl

Amikor konfigurál egy konzolalkalmazást a WebJobs üzembe helyezéséhez, a Visual Studio telepíti a Microsoft.Web.WebJobs.Publish NuGet csomagot, és egy webjob-publish-settings.json fájlban tárolja az ütemezési információkat a WebJobs-projekt Tulajdonságok mappájában. Íme egy példa erre a fájlra:

{
  "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
  "webJobName": "WebJob1",
  "startTime": "null",
  "endTime": "null",
  "jobRecurrenceFrequency": "null",
  "interval": null,
  "runMode": "Continuous"
}

Ezt a fájlt közvetlenül szerkesztheti, és a Visual Studio biztosítja az IntelliSense szolgáltatást. A fájlséma a helyen https://schemastore.org van tárolva, és ott tekinthető meg.

webjobs-list.json fájl

Amikor webprojekthez csatol egy WebJobs-kompatibilis projektet, a Visual Studio a WebJobs-projekt nevét egy webjobs-list.json fájlban tárolja a webes projekt Tulajdonságok mappájában. A lista több WebJobs-projektet is tartalmazhat az alábbi példában látható módon:

{
  "$schema": "http://schemastore.org/schemas/json/webjobs-list.json",
  "WebJobs": [
    {
      "filePath": "../ConsoleApplication1/ConsoleApplication1.csproj"
    },
    {
      "filePath": "../WebJob1/WebJob1.csproj"
    }
  ]
}

Ezt a fájlt közvetlenül a Visual Studióban szerkesztheti az IntelliSense használatával. A fájlséma a következő helyen található: https://schemastore.org.

WebJobs-projekt üzembe helyezése

A webprojekthez csatolt WebJobs-projektek automatikusan üzembe helyezhetők a webes projekttel. A webes projektek üzembe helyezésével kapcsolatos információkért lásd: Útmutatók>Az alkalmazás üzembe helyezése a bal oldali navigációs sávon.

Ha önállóan szeretne üzembe helyezni egy WebJobs-projektet, kattintson a jobb gombbal a projektre a Megoldáskezelő, és válassza a Közzététel Azure WebJobként lehetőséget.

Közzététel Azure WebJobként

Egy független WebJob esetében ugyanaz a Webes közzététel varázsló jelenik meg, amelyet a webes projektekhez használnak, de kevesebb beállítás érhető el a módosításhoz.

Az Azure WebJob hozzáadása párbeszédpanel

Az Azure WebJob hozzáadása párbeszédpanelen megadhatja a WebJob nevét és a WebJob futtatási módját.

Az Azure WebJob hozzáadása párbeszédpanel

A párbeszédpanel egyes mezői a Azure Portal WebJob hozzáadása párbeszédpanel mezőinek felelnek meg. További információ: Háttérfeladatok futtatása WebJobs-feladatokkal Azure App Service.

A WebJob üzembehelyezési adatai:

  • A parancssori üzembe helyezéssel kapcsolatos információkért lásd: Az Azure WebJobs parancssori vagy folyamatos kézbesítésének engedélyezése.

  • Ha webfeladatot helyez üzembe, majd úgy dönt, hogy módosítani szeretné a WebJob típusát és újra üzembe helyezést, törölje a webjobs-publish-settings.json fájlt. Ennek hatására a Visual Studio újra megjeleníti a közzétételi beállításokat, így módosíthatja a WebJob típusát.

  • Ha webfeladatot helyez üzembe, és később folyamatosról nem folyamatosra módosítja a futtatási módot, vagy fordítva, a Visual Studio új WebJob-feladatot hoz létre az Azure-ban az újbóli üzembe helyezéskor. Ha más ütemezési beállításokat módosít, de a futtatási módot változatlanul hagyja, vagy az Ütemezett és az Igény szerinti verzió között vált, a Visual Studio új feladat létrehozása helyett frissíti a meglévő feladatot.

WebJob-típusok

A WebJob típusa aktiválható vagy folyamatos lehet:

  • Aktivált (alapértelmezett): Az aktivált WebJob egy kötési eseményen, ütemezésen vagy manuálisan (igény szerint) indítható el. Egyetlen példányon fut, amelyen a webalkalmazás fut.

  • Folyamatos: A folyamatos WebJob azonnal elindul a WebJob létrehozásakor. Alapértelmezés szerint az összes webalkalmazás-skálázott példányon fut, de konfigurálható úgy, hogy egyetlen példányként fusson a settings.job használatával.

Megjegyzés

A webalkalmazások 20 perc inaktivitás után időtúllépést okozhatnak, és csak a tényleges webalkalmazásnak küldött kérések állíthatják alaphelyzetbe az időzítőt. Az alkalmazás konfigurációjának megtekintése az Azure Portal vagy a speciális eszközök webhelyére irányuló kérések (https://<app_name>.scm.azurewebsites.net) nem állítja vissza az időzítőt. Ha a feladatot üzemeltető webalkalmazást úgy állítja be, hogy folyamatosan fusson, ütemezés szerint fusson, vagy eseményvezérelt eseményindítókat használjon, engedélyezze az Always on beállítást a webalkalmazás Azure Configuration lapján. Az Always on beállítás segít meggyőződni arról, hogy az ilyen típusú WebJobs-feladatok megbízhatóan futnak. Ez a funkció csak az alapszintű, standard és prémium tarifacsomagokban érhető el.

Aktivált WebJobs-feladat ütemezése

Amikor konzolalkalmazást tesz közzé az Azure-ban, a Visual Studio alapértelmezés szerint Aktiválva értékre állítja a WebJob típusát, és hozzáad egy új settings.job fájlt a projekthez. Az aktivált WebJob-típusok esetében ezzel a fájllal végrehajtási ütemezést állíthat be a WebJobhoz.

A settings.job fájllal végrehajtási ütemezést állíthat be a WebJobhoz. A következő példa óránként 9 és 17 óra között fut:

{
    "schedule": "0 0 9-17 * * *"
}

Ez a fájl a WebJobs mappa gyökerében található a WebJob szkriptjével, például wwwroot\app_data\jobs\triggered\{job name} vagy wwwroot\app_data\jobs\continuous\{job name}. Amikor webfeladatot helyez üzembe a Visual Studióból, jelölje meg a settings.job fájltulajdonságokat a Visual Studióban másolásként, ha újabb.

Ha a Azure Portal hoz létre WebJob-feladatot, a settings.job fájl létrejön Önnek.

CRON-kifejezések

A WebJobs ugyanazokat a CRON-kifejezéseket használja az ütemezéshez, mint az időzítő eseményindítója Azure Functions. A CRON-támogatással kapcsolatos további információkért lásd: Időzítő eseményindító Azure Functions.

Megjegyzés

A CRON-kifejezések futtatásához használt alapértelmezett időzóna a koordinált egyetemes idő (UTC). Ha azt szeretné, hogy a CRON-kifejezés egy másik időzóna alapján fusson, hozzon létre egy alkalmazásbeállítást a WEBSITE_TIME_ZONE nevű függvényalkalmazáshoz. További információ: NCRONTAB időzónák.

settings.job reference

A WebJobs a következő beállításokat támogatja:

Beállítás Típus Leírás
is_in_place Mind Lehetővé teszi a WebJob futtatását anélkül, hogy először átmásolna egy ideiglenes mappába. További információ: WebJob munkakönyvtár.
is_singleton Folyamatos A WebJob csak egyetlen példányon futtassa a skálázást. További információ: Folyamatos feladat beállítása önállóként.
schedule Kiváltott Futtassa a WebJobot CRON-alapú ütemezéssel. További információ: NCRONTAB-kifejezések.
stopping_wait_time Mind Lehetővé teszi a leállítási viselkedés vezérlését. További információ: Kecses leállítás.

Folyamatos végrehajtás

Ha engedélyezi az Always on funkciót az Azure-ban, a Visual Studióval módosíthatja a WebJob folyamatos futtatását:

  1. Ha még nem tette meg, tegye közzé a projektet az Azure-ban.

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

  3. A Beállítások szakaszban válassza az Összes beállítás megjelenítése lehetőséget.

  4. A Profilbeállítások párbeszédpanelen válassza a Folyamatos webfeladattípus lehetőséget, majd kattintson a Mentés gombra.

    WebJob-feladatok Közzétételi beállításai párbeszédpanelje

  5. A Közzététel lapon válassza a Közzététel lehetőséget a WebJob újbóli közzétételéhez a frissített beállításokkal.

Következő lépések