Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Support pro model v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovních procesů pro plnou podporu.
Izolovaný pracovní proces .NET umožňuje spouštět Durable Functions na libovolné podporované verzi .NET nezávisle na hostitelském procesu Azure Functions. Tento model poskytuje úplnou kontrolu nad injektáží závislostí, middlewarem a správou verzí .NET.
V tomto článku se dozvíte o:
- Výhody izolovaného pracovníka pro Durable Functions
- Začínáme s požadovanými balíčky
- Hlavní rozdíly v interních Rozhraních API a oborech názvů
- Generátory zdrojů a syntaxe založená na třídách (Preview) pro orchestrace silného typu
Benefits
Izolovaný pracovní proces .NET poskytuje několik výhod pro aplikace Durable Functions:
- Nezávislá správa verzí .NET: Spusťte aplikaci v .NET 8, .NET 9 nebo novějším bez čekání na aktualizaci hostitele Functions.
-
Úplná injektáž závislostí: Ve svých aktivitách používejte standardní vzory .NET
IServiceCollection/IServiceProvider. - Vlastní middleware: Přidejte průřezové otázky, jako je protokolování, ověřování nebo zpracování chyb prostřednictvím kanálu pracovního procesu Functions.
-
Přímá injektáž vstupu: Vstup orchestrace může být přímo vložen do definice funkce triggeru:
MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input). - Volání silného typu (Preview): Se zdrojovým balíčkem generátoru získáte vyvolání aktivit a dílčích orchestrací bezpečných v době kompilace. Další informace najdete v tématu Generátory zdrojů a syntaxe založená na třídách (Preview).
Úplný seznam výhod izolovaného pracovního procesu najdete v tématu Výhody izolovaného modelu pracovního procesu.
Začínáme
Jak vytvořit aplikaci Durable Functions pomocí izolovaného pracovního prostředí .NET:
Nainstalujte požadovaný balíček NuGet:
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.*" />Slouží
TaskOrchestrationContextk orchestraci aDurableTaskClientpro klientské operace. Kompletní návod najdete v kurzu rychlý start .
Hlavní rozdíly oproti internímu procesu
Pokud migrujete z modelu v procesu nebo jej porovnáváte s modelem v procesu, zde jsou hlavní rozdíly:
| Area | Zpracovává se | Izolovaný pracovník .NET |
|---|---|---|
| Balíček NuGet | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.Azure.Functions.Worker.Extensions.DurableTask |
| Kontext orchestratoru | IDurableOrchestrationContext |
TaskOrchestrationContext |
| Typ klienta | IDurableOrchestrationClient |
DurableTaskClient |
| Kontext aktivity | IDurableActivityContext |
TaskActivityContext |
| Namespace | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.DurableTask / Microsoft.Azure.Functions.Worker |
| Protokolovací nástroj odolný proti opakování | context.CreateReplaySafeLogger(log) |
context.CreateReplaySafeLogger("Name") |
Komplexní průvodce migrací, který se zabývá nastavením projektu, odkazy na balíčky, mapováním rozhraní API, rozdíly chování a běžnými problémy, najdete v tématu Migrace z procesu do izolovaného pracovního modelu.
Generátory zdrojů a syntaxe založené na třídách (Preview)
Balíček zdrojového generátoru poskytuje alternativu k Durable Functions založeným na funkcích. Místo statických metod s [Function] atributy napíšete třídy silného typu, které dědí z Durable SDK.
Předpoklady
Přidejte do projektu balíček NuGet zdrojového generátoru:
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0" />
Balíček nabízí dvě možnosti:
-
Aktivity a orchestrace založené na třídách – silně typované třídy, které dědí
TaskOrchestrator<TInput, TOutput>aTaskActivity<TInput, TOutput>. - Silně typované metody rozšíření — metody bezpečné při kompilaci pro vyvolání dílčích orchestrací a aktivit. Tyto rozšiřující metody fungují také v rámci orchestrací založených na funkcích.
Příklad
Následující příklad ukazuje orchestraci založenou na třídě, která volá aktivitu založenou na třídě:
using Microsoft.DurableTask;
[DurableTask]
public class MyOrchestration : TaskOrchestrator<string, string>
{
public override async Task<string> RunAsync(TaskOrchestrationContext context, string input)
{
return await context.CallActivityAsync<string>(nameof(MyActivity), input);
}
}
[DurableTask]
public class MyActivity : TaskActivity<string, string>
{
public override Task<string> RunAsync(TaskActivityContext context, string input)
{
return Task.FromResult($"Processed: {input}");
}
}
Tip
Pro orchestrace nebo aktivity, které nepotřebují funkční vstup nebo výstup, použijte object? jako argument obecného typu (například TaskOrchestrator<object?, object?>). Tento model umožňuje používat injektáž závislostí (například ILogger<T>) v aktivitách a přitom stále používat model založený na třídách.
Odolné entity
Odolné entity jsou podporovány v izolovaném pracovním procesu .NET. Další informace najdete v příručce pro vývojáře.