Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Wsparcie dla modelu w toku zakończy się 10 listopada 2026 r. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do izolowanego modelu roboczego w celu uzyskania pełnej obsługi.
Izolowany proces roboczy platformy .NET umożliwia uruchamianie rozszerzenia Durable Functions w dowolnej obsługiwanej wersji platformy .NET niezależnie od procesu hosta usługi Azure Functions. Ten model zapewnia pełną kontrolę nad wstrzykiwaniem zależności, middleware i wersjonowaniem .NET.
Z tego artykułu dowiesz się więcej o:
- Zalety izolowanego pracownika dla Durable Functions
- Rozpoczęcie pracy z wymaganymi pakietami
- Kluczowe różnice w procesie Interfejsy API i przestrzenie nazw
- Generatory źródłowe i składnia oparta na klasach (wersja zapoznawcza) dla silnie typowanych orkiestracji
Korzyści
Izolowany proces roboczy .NET oferuje kilka zalet dla aplikacji Durable Functions:
- Niezależne przechowywanie wersji platformy .NET: Uruchom aplikację na platformie .NET 8, .NET 9 lub nowszej bez oczekiwania na aktualizację hosta usługi Functions.
-
Pełne wstrzykiwanie zależności: Użyj standardowych wzorców platformy .NET
IServiceCollection/IServiceProviderw swoich działaniach. - Niestandardowe oprogramowanie pośredniczące: Dodaj zagadnienia związane z przekrojem, takie jak rejestrowanie, uwierzytelnianie lub obsługa błędów za pośrednictwem warstwy pośredniej potoku funkcji.
-
Bezpośrednie wstrzykiwanie danych wejściowych: Dane wejściowe orkiestracji można wstrzyknąć bezpośrednio do podpisu metody wyzwalacza:
MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input). - Silnie typizowane wywołania (wersja zapoznawcza): Pakiet generatora źródłowego zapewnia bezpieczne wywołania w czasie kompilacji na potrzeby działań i podaranżacji. Aby uzyskać więcej informacji, zobacz Generatory źródeł i składnia oparta na klasach (wersja demonstracyjna).
Aby uzyskać pełną listę korzyści pracowników pracujących w izolacji, zobacz Korzyści z modelu pracownika pracującego w izolacji.
Wprowadzenie
Aby utworzyć aplikację Durable Functions za pomocą izolowanego worker'a w platformie .NET:
Zainstaluj wymagany pakiet NuGet:
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.*" />Użyj
TaskOrchestrationContextdla orkiestratorów iDurableTaskClientdla operacji klienta. Zobacz samouczek szybkiego startu, aby zapoznać się z pełnym przewodnikiem.
Kluczowe różnice względem procesów w toku
Jeśli przeprowadzasz migrację z modelu wewnątrzprocesowego lub porównujesz go z innym modelem, oto najważniejsze różnice:
| Area | W toku | Izolowany proces roboczy platformy .NET |
|---|---|---|
| Pakiet NuGet | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.Azure.Functions.Worker.Extensions.DurableTask |
| Kontekst programu Orchestrator | IDurableOrchestrationContext |
TaskOrchestrationContext |
| Typ klienta | IDurableOrchestrationClient |
DurableTaskClient |
| Kontekst działania | IDurableActivityContext |
TaskActivityContext |
| Namespace | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.DurableTask / Microsoft.Azure.Functions.Worker |
| Dziennikarz bezpieczny przed ponownym odtworzeniem | context.CreateReplaySafeLogger(log) |
context.CreateReplaySafeLogger("Name") |
Aby zapoznać się z kompleksowym przewodnikiem migracji, który obejmuje konfigurację projektu, odwołania do pakietów, mapowania interfejsu API, różnice behawioralne i typowe problemy, zobacz Migrowanie z procesu do izolowanego modelu procesu roboczego.
Generatory źródeł i składnia oparta na klasach (wersja zapoznawcza)
Pakiet generatora źródłowego stanowi alternatywę dla funkcji opartych na Durable Functions. Zamiast metod statycznych z atrybutami [Function] , należy napisać silnie typizowane klasy dziedziczone z zestawu Durable SDK.
Wymagania wstępne
Dodaj pakiet NuGet generatora źródłowego do projektu:
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0" />
Pakiet zapewnia dwie możliwości:
-
Działania i orkiestracje oparte na klasach — silnie typizowane klasy dziedziczą
TaskOrchestrator<TInput, TOutput>iTaskActivity<TInput, TOutput>. - Silnie typizowane metody rozszerzenia — metody bezpieczne w czasie kompilacji do wywoływania podchoreografii i aktywności. Te metody rozszerzeń działają również w orkiestracjach opartych na funkcjach.
Przykład
W poniższym przykładzie pokazano orkiestrację opartą na klasie, która wywołuje działanie oparte na klasach:
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}");
}
}
Wskazówka
W przypadku orkiestracji lub działań, które nie wymagają funkcjonalnych danych wejściowych lub wyjściowych, użyj object? jako argumentu typu ogólnego (na przykład TaskOrchestrator<object?, object?>). Ten wzorzec umożliwia użycie iniekcji zależności (na przykład ILogger<T>) w działaniach, które nadal korzystają z modelu opartego na klasach.
Jednostki trwałe
Trwałe jednostki są obsługiwane w izolowanej aplikacji roboczej .NET. Aby uzyskać więcej informacji, zobacz przewodnik dewelopera.