Verschillen tussen het geïsoleerde werkrolmodel en het in-process model voor .NET in Azure Functions
Er zijn twee uitvoeringsmodellen voor .NET-functies:
Uitvoeringsmodel | Beschrijving |
---|---|
Geïsoleerde werkrolmodel | Uw functiecode wordt uitgevoerd in een afzonderlijk .NET-werkproces. Gebruiken met ondersteunde versies van .NET en .NET Framework. Zie .NET geïsoleerde werkprocesfuncties ontwikkelen voor meer informatie. |
Model in proces | Uw functiecode wordt uitgevoerd in hetzelfde proces als het Functions-hostproces. Ondersteunt alleen LTS-versies (Long Term Support) van .NET. Zie .NET-klassebibliotheekfuncties ontwikkelen voor meer informatie. |
Belangrijk
De ondersteuning wordt beëindigd voor het in-process model op 10 november 2026. We raden u ten zeerste aan uw apps te migreren naar het geïsoleerde werkrolmodel voor volledige ondersteuning.
In dit artikel wordt de huidige status van de functionele en gedragsverschillen tussen de twee modellen beschreven. Zie .NET-apps migreren van het in-procesmodel naar het geïsoleerde werkrolmodel om te migreren van het in-procesmodel naar het geïsoleerde werkrolmodel.
Vergelijkingstabel voor uitvoeringsmodellen
Gebruik de volgende tabel om functie- en functionele verschillen tussen de twee modellen te vergelijken:
Functie/gedrag | Geïsoleerde werkrolmodel | In-process model3 |
---|---|---|
Ondersteunde .NET-versies | LTS-versies (Long Term Support), StS-versies (Standard Term Support), .NET Framework |
LTS-versies (Long Term Support), eindigend op .NET 8 |
Kernpakketten | Microsoft.Azure.Functions.Worker Microsoft.Azure.Functions.Worker.Sdk |
Microsoft.NET.Sdk.Functions |
Bindingsuitbreidingspakketten | Microsoft.Azure.Functions.Worker.Extensions.* | Microsoft.Azure.WebJobs.Extensions.* |
Durable Functions | Ondersteund | Ondersteund |
Modeltypen die worden weergegeven door bindingen | Eenvoudige typen JSON serialiseerbare typen Matrices/opsommingen Service-SDK-typen4 |
Eenvoudige typen JSON serialiseerbare typen Matrices/opsommingen Service-SDK-typen4 |
HTTP-triggermodeltypen | HttpRequestData / HttpResponseData HttpRequest IActionResult (met behulp van ASP.NET Core-integratie)5 / |
HttpRequest IActionResult5 / HttpRequestMessage / HttpResponseMessage |
Interacties tussen uitvoerbindingen | Retourneert waarden in een uitgebreid model met: - één of meerdere uitvoer - matrices van uitvoer |
Retourwaarden (alleen enkelvoudige uitvoer),out ParametersIAsyncCollector |
Imperatieve bindingen1 | Niet ondersteund: in plaats daarvan rechtstreeks werken met SDK-typen | Ondersteund |
Afhankelijkheidsinjectie | Ondersteund (verbeterd modelconsistent met .NET-ecosysteem) | Ondersteund |
Middleware | Ondersteund | Niet ondersteund |
Logboekregistratie | ILogger<T> /ILogger verkregen uit FunctionContext of via afhankelijkheidsinjectie |
ILogger doorgegeven aan de functieILogger<T> via afhankelijkheidsinjectie |
Application Insights-afhankelijkheden | Ondersteund | Ondersteund |
Annuleringstokens | Ondersteund | Ondersteund |
Koude begintijden2 | Configureerbare optimalisaties | Geoptimaliseerd |
ReadyToRun | Ondersteund | Ondersteund |
[Flexverbruik] | Ondersteund | Niet ondersteund |
1 Wanneer u moet communiceren met een service met behulp van parameters die tijdens runtime zijn bepaald, wordt het gebruik van de bijbehorende service-SDK's rechtstreeks aanbevolen voor het gebruik van imperatieve bindingen. De SDK's zijn minder uitgebreid, hebben meer scenario's en hebben voordelen voor foutafhandeling en foutopsporing. Deze aanbeveling is van toepassing op beide modellen.
2 Koude begintijden kunnen extra worden beïnvloed in Windows bij het gebruik van een aantal preview-versies van .NET vanwege just-in-time laden van preview-frameworks. Deze impact is van toepassing op zowel de in-proces- als out-of-process-modellen, maar kan merkbaar zijn bij het vergelijken van verschillende versies. Deze vertraging voor preview-versies is niet aanwezig in Linux-abonnementen.
3 C#-scriptfuncties worden ook in het proces uitgevoerd en gebruiken dezelfde bibliotheken als in-process-klassebibliotheekfuncties. Zie de naslaginformatie voor ontwikkelaars van Azure Functions C#-scripts (.csx) voor meer informatie.
4 Service SDK-typen zijn typen van de Azure SDK voor .NET , zoals BlobClient.
5 ASP.NET Core-typen worden niet ondersteund voor .NET Framework.
Ondersteunde versies
Versies van de Functions-runtime ondersteunen specifieke versies van .NET. Zie het overzicht van runtimeversies van Azure Functions voor meer informatie over Functions-versies. Versieondersteuning is ook afhankelijk van of uw functies in proces of geïsoleerd werkproces worden uitgevoerd.
Notitie
Zie de huidige runtimeversie weergeven en bijwerken voor meer informatie over het wijzigen van de runtimeversie van Functions die door uw functie-app wordt gebruikt.
In de volgende tabel ziet u het hoogste niveau van .NET of .NET Framework dat kan worden gebruikt met een specifieke versie van Functions.
Runtimeversie van Functions | Geïsoleerde werkrolmodel | In-process model5 |
---|---|---|
Functions 4.x1 | .NET 9.0 (preview) .NET 8.0 .NET 6.02 .NET Framework 4.83 |
.NET 8.0 .NET 6.02 |
Functions 1.x4 | n.v.t. | .NET Framework 4.8 |
1 .NET 7 werd eerder ondersteund op het geïsoleerde werkrolmodel, maar bereikte het einde van de officiële ondersteuning op 14 mei 2024.
2 .NET 6 bereikt het einde van de officiële ondersteuning op 12 november 2024.
3 Het buildproces vereist ook de .NET SDK.
4 Ondersteuning eindigt op versie 1.x van de Azure Functions-runtime op 14 september 2026. Zie deze ondersteuningsaankondiging voor meer informatie. Voor continue volledige ondersteuning moet u uw apps migreren naar versie 4.x.
5 Ondersteuning eindigt op het procesmodel op 10 november 2026. Zie deze ondersteuningsaankondiging voor meer informatie. Voor continue volledige ondersteuning moet u uw apps migreren naar het geïsoleerde werkrolmodel.
Voor het laatste nieuws over Azure Functions-releases, waaronder het verwijderen van specifieke oudere secundaire versies, controleert u Azure-app Service-aankondigingen.