Rozdíly mezi izolovaným modelem pracovního procesu a modelem v procesu pro .NET na Azure Functions

Pro .NET funkce 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 .NET a .NET Framework. Další informace najdete v Průvodci pro spouštění funkcí Azure jazyka C# v izolovaném pracovním modelu.
Procesní model Kód funkce se spouští ve stejném procesu jako hostitelský proces služby Functions. Podporuje pouze verze Long Term Support (LTS) .NET. Další informace naleznete v tématu Vývoj funkcí knihovny tříd 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 model izolovaného pracovního procesu, přečtěte si téma Grace .NET aplikací z modelu v procesu do izolovaného modelu 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íka Model v procesu3
Podporované verze .NET verze dlouhodobé podpory (LTS)
Standardní verze podpory termínů (STS)
.NET Framework
Verze dlouhodobé podpory (LTS) končící na .NET 8
Základní balíčky Microsoft. Azure. Functions.Worker
Microsoft. Azure. Functions.Worker.Sdk
Microsoft.NET. Sdk.Functions
Propojení balíčků rozšíření Microsoft. Azure. Functions.Worker.Extensions.* Microsoft. Azure. WebJobs.Extensions.*
Durable Functions Podporováno Podporováno
Typy modelů vystavené vazbami Jednoduché typy
Serializovatelné typy JSON
Pole a výčty
Typy sady SDK služby4
Jednoduché typy
Serializovatelné typy JSON
Pole a výčty
Typy služebního SDK4
Typy modelů triggeru HTTP HttpRequestData / HttpResponseData
HttpRequest / IActionResult (pomocí 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 pracujte přímo s typy SDK Podporováno
Injektáž závislostí Supported (vylepšený model konzistentní s ekosystémem .NET) Podporováno
Middleware Podporováno 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 aplikace Insights Podporováno Podporováno
** Tokeny pro zrušení Podporováno Podporováno
Časy studeného startu2 Konfigurovatelné optimalizace Optimalizované
ReadyToRun Podporováno Podporováno
Flexibilní Spotřeba Podporováno Nepodporováno
.NET Aspire Preview Nepodporováno
  1. Pokud potřebujete komunikovat se službou pomocí parametrů určených za běhu, doporučuje se přímo použít odpovídající sady SDK služby namísto 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í na Windows můžou být navíc ovlivněny při použití některých preview verzí .NET kvůli just-in-time načítání preview frameworků. Tento dopad se vztahuje jak na modely pracovních procesů v procesu, tak i na izolované pracovní procesy, ale při porovnávání v různých verzích může být patrný. Tato prodleva u předběžných verzí není přítomna v plánech pro Linux.
  3. Funkce skriptu 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 skript jazyka C# (.csx.
  4. Typy SDK služby zahrnují například typy z Azure SDK pro .NET, jako je BlobClient.
  5. ASP.NET Core typy nejsou podporované pro .NET Framework.

Podporované verze

Verze prostředí runtime Functions podporují konkrétní verze .NET. Další informace o verzích služby Functions najdete v tématu Azure Functions přehled verzí modulu runtime. Podpora verzí také závisí na tom, zda vaše funkce běží ve vnitřním procesu nebo v izolovaném pracovním procesu.

Poznámka:

Informace o tom, jak změnit verzi modulu runtime funkcí používanou vaší funkční aplikací, vizte v části zobrazit a aktualizovat aktuální verzi modulu runtime.

Následující tabulka ukazuje nejvyšší úroveň .NET nebo rozhraní .NET Framework, které lze 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 v obou modelech, ale dosáhlo konce oficiální podpory 12. listopadu 2024. .NET 7 bylo dříve podporováno v izolovaném pracovním modelu, ale dosáhlo konce oficiální podpory 14. května 2024.

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

3 Podpora končí pro verzi 1.x modulu runtime Azure Functions 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 .NET 10 aplikací v Linuxu. Pokud chcete spustit v Linuxu, měli byste místo toho použít plán Flex Consumption. Podrobné pokyny k migraci najdete v tématu Migrace aplikací plánu Consumption do plánu Flex Consumption.

Nejnovější zprávy o verzích Azure Functions, včetně odebrání konkrétních starších podverzí, sledujte na oznámení Azure App Service.

Další kroky