Sdílet prostřednictvím


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 Příručce pro spouštění funkcí Azure Functions jazyka C# v izolovaném pracovním modelu.
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 jazyka C# pomocí Azure Functions.

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é verze podpory (LTS) končící na .NET 8
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.*
Durable 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 pomocí injektáže závislostí ILogger předáno funkci
ILogger<T> pomocí injektáže závislostí
Závislosti Application Insights Podporuje se Podporuje se
Tokeny zrušení Podporuje se Podporuje se
Časy studeného startu2 Konfigurovatelné optimalizace Optimalizované
ReadyToRun Podporuje se Podporuje se
Flexibilní Spotřeba Podporuje se Nepodporováno
.NET Aspire Náhled Nepodporováno

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 spuštění můžou být navíc ovlivněny ve Windows, když používáte některé verze .NET ve verzi Preview 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.

5 Typy ASP.NET Core nejsou podporovány pro .NET Framework.

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 procesu4
Funkce 4.x1 .NET 105
.NET 9.0
.NET 8.0
.NET Framework 4.82
.NET 8.0
Funkce 1.x3 Není k dispozici .NET Framework 4.8

1 .NET 6 bylo dříve podporováno na obou modelech, ale dosáhlo konce oficiální podpory 12. listopadu 2024. Rozhraní .NET 7 bylo dříve podporováno v izolovaném modelu pracovních procesů, ale dosáhlo konce oficiální podpory 14. května 2024.

2 Proces sestavení také vyžaduje sadu .NET SDK.

3 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.

4 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.

5 V plánu Consumption nemůžete spouštět aplikace .NET 10 v Linuxu. Pokud chcete spustit v Linuxu, měli byste místo toho použít plán Flex Consumption.

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