Különbségek az izolált feldolgozói modell és a .NET folyamaton belüli modellje között az Azure Functionsben

A .NET-függvényekhez két végrehajtási modell létezik:

Végrehajtási modell Leírás
Izolált feldolgozói modell A függvénykód egy külön .NET-feldolgozófolyamatban fut. A .NET és a .NET-keretrendszer támogatott verzióival használható. További információ: .NET izolált feldolgozói folyamatfüggvények fejlesztése.
Folyamaton belüli modell A függvénykód ugyanabban a folyamatban fut, mint a Functions gazdafolyamata. Csak a .NET hosszú távú támogatási (LTS) verzióit támogatja. További információ: .NET-osztálykódtár-függvények fejlesztése.

Ez a cikk a két modell közötti funkcionális és viselkedési különbségek aktuális állapotát ismerteti. A folyamaton belüli modellről az izolált feldolgozói modellre való migráláshoz lásd : .NET-alkalmazások migrálása a folyamatban lévő modellből az izolált feldolgozói modellbe.

Végrehajtási modell összehasonlító táblázata

Az alábbi táblázat segítségével összehasonlíthatja a két modell közötti funkció- és funkcionális különbségeket:

Funkció/viselkedés Izolált feldolgozói modell Folyamatközi modell3
Támogatott .NET-verziók Hosszú távú támogatási (LTS-) verziók,
Standard kifejezéstámogatási (STS-) verziók,
.NET-keretrendszer
Hosszú távú támogatás (LTS) 6-os verziói
Alapcsomagok Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
Kötésbővítmény-csomagok Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
Tartós függvények Támogatott Támogatott
Kötések által közzétett modelltípusok Egyszerű típusok
JSON szerializálható típusok
Tömbök/enumerálások
Service SDK 4-típusok
Egyszerű típusok
JSON szerializálható típusok
Tömbök/enumerálások
Service SDK 4-típusok
HTTP-eseményindító modelltípusai HttpRequestData / HttpResponseData
HttpRequest / IActionResult (ASP.NET Core-integráció használata)5
HttpRequest IActionResult5 /
HttpRequestMessage / HttpResponseMessage
Kimeneti kötések interakciói Bővített modell értékeit adja vissza a következőkkel:
- egy vagy több kimenet
- kimenetek tömbjei
Visszaadott értékek (csak egyetlen kimenet),
out Paraméterek
IAsyncCollector
Imperatív kötések1 Nem támogatott – ehelyett közvetlen SDK-típusok használata Támogatott
Függőséginjektálás Támogatott (továbbfejlesztett modell, amely összhangban van a .NET-ökoszisztémával) Támogatott
Közbenső szoftver Támogatott Nem támogatott
Naplózás ILogger<T>/ILoggerfüggvénykontextből vagy függőséginjektálásból nyert ILogger átadva a függvénynek
ILogger<T>függőséginjektáláson keresztül
Alkalmazásfüggőségek Elemzések Támogatott Támogatott
Lemondási jogkivonatok Támogatott Támogatott
Hideg kezdési időpontok2 Konfigurálható optimalizálás Optimalizált
ReadyToRun Támogatott Támogatott

1 Ha futtatókörnyezetben meghatározott paraméterekkel kell kommunikálnia egy szolgáltatással, a megfelelő szolgáltatás SDK-k közvetlen használata javasolt imperatív kötések használatával. Az SDK-k kevésbé részletesek, több forgatókönyvet fednek le, és előnyösek a hibakezelési és hibakeresési célokra. Ez a javaslat mindkét modellre vonatkozik.

2 A hideg kezdési idők a Windowsra is hatással lehetnek, ha a .NET egyes előzetes verzióit használják az előzetes verziójú keretrendszerek időszerű betöltése miatt. Ez a hatás a folyamaton belüli és a folyamaton kívüli modellekre is vonatkozik, de a különböző verziók összehasonlításakor észrevehető lehet. Az előzetes verziók késése nem jelenik meg Linux-csomagokban.

A 3 C#-os szkriptfüggvények is folyamatban futnak, és ugyanazokat a kódtárakat használják, mint a folyamatközi osztálybeli kódtárfüggvények. További információ: Azure Functions C# szkript (.csx) fejlesztői referencia.

4 A szolgáltatás SDK-típusok közé tartoznak a .NET-hez készült Azure SDK-ból származó típusok, például a BlobClient.

5 ASP.NET Alaptípus nem támogatott a .NET-keretrendszer.

A 6 .NET 8 még nem támogatott a folyamatban lévő modellen, bár elérhető az izolált feldolgozói modellben. A .NET 8-csomagokról, beleértve a folyamatban lévő modell jövőbeli lehetőségeit is, tekintse meg az Azure Functions ütemtervfrissítési bejegyzését.

Támogatott verziók

A Functions-futtatókörnyezet verziói támogatják a .NET egyes verzióit. A Functions-verziókkal kapcsolatos további információkért tekintse meg az Azure Functions futtatókörnyezeti verzióinak áttekintését. A verziótámogatás attól is függ, hogy a függvények folyamatban vagy izolált feldolgozófolyamatban futnak-e.

Feljegyzés

A függvényalkalmazás által használt Functions-futtatókörnyezeti verzió módosításának megismeréséhez tekintse meg és frissítse az aktuális futtatókörnyezeti verziót.

Az alábbi táblázat a .NET vagy .NET-keretrendszer legmagasabb szintjét mutatja be, amely a Functions egy adott verziójával használható.

Functions futtatókörnyezet verziója Izolált feldolgozói modell Folyamatközi modell5
Functions 4.x .NET 8.0
.NET 7.01
.NET 6.02
.NET-keretrendszer 4,83
.NET 6.02
Functions 1.x4 n.a. .NET-keretrendszer 4.8

Az 1 .NET 7 2024. május 14-én véget ér a hivatalos támogatásnak .
A 2 .NET 6 2024. november 12-én véget ér a hivatalos támogatásnak .
3 A buildelési folyamathoz a .NET SDK is szükséges. 4 Az Azure Functions-futtatókörnyezet 1.x verziójának támogatása 2026. szeptember 14-én megszűnik. További információkért tekintse meg ezt a támogatási közleményt. A folyamatos teljes támogatás érdekében át kell telepítenie az alkalmazásokat a 4.x verzióra.
5 A folyamaton belüli modell támogatása 2026. november 10-én megszűnik. További információkért tekintse meg ezt a támogatási közleményt. A folyamatos teljes támogatás érdekében az alkalmazásokat át kell telepítenie az izolált feldolgozói modellbe.

Az Azure Functions-kiadásokkal kapcsolatos legfrissebb hírekért, beleértve a régebbi alverziók eltávolítását is, figyelje Azure-alkalmazás szolgáltatásjelentéseket.

Következő lépések