Rozdíly mezi izolovaným modelem pracovního procesu a modelem v procesu pro .NET ve službě Azure Functions

Pro funkce .NET existují dva modely spouštění:

Model spouštění Popis
Izolovaný model pracovního procesu Kód funkce se spouští v samostatném pracovním procesu .NET. Používá se s podporovanými verzemi rozhraní .NET a .NET Framework. Další informace najdete v tématu Vývoj funkcí izolovaného pracovního procesu .NET.
Model v procesu Kód funkce se spouští ve stejném procesu jako hostitelský proces služby Functions. Podporuje pouze verze dlouhodobé podpory (LTS) rozhraní .NET. Další informace najdete v tématu Vývoj funkcí knihovny tříd .NET.

Tento článek popisuje aktuální stav funkčních a behaviorálních rozdílů mezi těmito dvěma modely. Pokud chcete migrovat z modelu v procesu na izolovaný pracovní model, přečtěte si téma Migrace aplikací .NET z modelu v procesu na izolovaný model pracovního procesu.

Tabulka porovnání prováděcího modelu

K porovnání funkcí a funkčních rozdílů mezi těmito dvěma modely použijte následující tabulku:

Funkce/chování Izolovaný model pracovního procesu Model v procesu3
Podporované verze .NET Dlouhodobé podpory (LTS) verze,
Standardní verze podpory termínů (STS)
.NET Framework
Dlouhodobá podpora (LTS) verze6
Základní balíčky Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
Vazby balíčků rozšíření Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
Odolná služba Functions Podporuje se Podporuje se
Typy modelů vystavené vazbami Jednoduché typy
Serializovatelné typy JSON
Pole/výčty
Typysady SDK služby 4
Jednoduché typy
Serializovatelné typy JSON
Pole/výčty
Typysady SDK služby 4
Typy modelů triggeru HTTP HttpRequestData / HttpResponseData
HttpRequest / IActionResult (s využitím integrace ASP.NET Core)5
HttpRequest IActionResult5 /
HttpRequestMessage / HttpResponseMessage
Interakce výstupních vazeb Vrácení hodnot v rozšířeném modelu pomocí:
– jeden nebo více výstupů
- pole výstupů
Návratové hodnoty (pouze jeden výstup)
out Parametry
IAsyncCollector
Imperativní vazby1 Nepodporuje se – místo toho můžete pracovat s typy sad SDK přímo Podporuje se
Injektáž závislostí Podporováno (vylepšený model konzistentní s ekosystémem .NET) Podporuje se
Middleware Podporuje se Nepodporováno
Protokolování ILogger<T>/ILogger získané z FunctionContext nebo prostřednictvím injektáže závislostí ILogger předáno funkci
ILogger<T> prostřednictvím injektáže závislostí
Závislosti Přehledy aplikací Podporuje se Podporuje se
Tokeny zrušení Podporuje se Podporuje se
Časy studeného startu2 Konfigurovatelné optimalizace Optimalizované
ReadyToRun Podporuje se Podporuje se

1 Pokud potřebujete pracovat se službou pomocí parametrů určených za běhu, doporučuje se použití odpovídajících sad SDK služby přímo pomocí imperativních vazeb. Sady SDK jsou méně podrobné, pokrývají více scénářů a mají výhody pro zpracování chyb a účely ladění. Toto doporučení platí pro oba modely.

2 Časy studeného startu mohou být navíc ovlivněny windows při použití některých verzí Preview rozhraní .NET kvůli načítání architektur Preview za běhu. Tento dopad platí jak pro modely v procesu, tak i modely mimo zpracování, ale při porovnávání v různých verzích to může být patrné. Tato prodleva pro verze Preview není k dispozici v plánech Linuxu.

3 Funkce skriptů jazyka C# také běží v procesu a používají stejné knihovny jako funkce knihovny tříd v procesu. Další informace najdete v referenčních informacích pro vývojáře azure Functions v jazyce C# (.csx).

4 Typy sady SDK služby zahrnují typy ze sady Azure SDK pro .NET , jako je BlobClient.

Rozhraní .NET Framework nepodporuje 5 typů ASP.NET Core.

6 .NET 8 zatím není v modelu procesu podporováno, i když je k dispozici v izolovaném pracovním modelu. Informace o plánech .NET 8, včetně budoucích možností modelu v procesu, najdete v příspěvku aktualizace plánu služby Azure Functions.

Podporované verze

Verze modulu runtime Služby Functions podporují konkrétní verze rozhraní .NET. Další informace o verzích functions najdete v přehledu verzí modulu runtime Azure Functions. Podpora verzí také závisí na tom, jestli vaše funkce běží v procesu nebo izolovaný pracovní proces.

Poznámka:

Informace o tom, jak změnit verzi modulu runtime Functions používanou vaší aplikací funkcí, najdete v zobrazení a aktualizaci aktuální verze modulu runtime.

Následující tabulka ukazuje nejvyšší úroveň rozhraní .NET nebo .NET Framework, kterou je možné použít s konkrétní verzí funkcí.

Verze modulu runtime služby Functions Izolovaný model pracovního procesu Model v procesu5
Funkce 4.x .NET 8.0
.NET 7.01
.NET 6.02
.NET Framework 4.83
.NET 6.02
Funkce 1.x4 Není k dispozici .NET Framework 4.8

1 .NET 7 dosáhne konce oficiální podpory 14. května 2024.
2 .NET 6 dosáhne konce oficiální podpory 12. listopadu 2024.
3 Proces sestavení také vyžaduje sadu .NET SDK. 4 Podpora modulu runtime Azure Functions končí 1.x 14. září 2026. Další informace najdete v tomto oznámení podpory. Pokud chcete pokračovat v plné podpoře, měli byste migrovat aplikace na verzi 4.x.
5 Podpora modelu v procesu končí 10. listopadu 2026. Další informace najdete v tomto oznámení podpory. Pokud chcete pokračovat v plné podpoře, měli byste své aplikace migrovat do izolovaného pracovního modelu.

Nejnovější zprávy o vydaných verzích Azure Functions, včetně odebrání konkrétních starších podverzí, monitorujte oznámení služby Aplikace Azure.

Další kroky