Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le worker isolé .NET vous permet d’exécuter Durable Functions sur n’importe quelle version .NET prise en charge indépendamment du processus hôte Azure Functions. Ce modèle vous donne un contrôle total sur l’injection de dépendances, l’intergiciel et le contrôle de version .NET.
Dans cet article, vous découvrirez :
- Avantages du travailleur isolé pour les fonctions "Durable Functions"
- Prise en main des packages requis
- Principales différences par rapport aux API in-process et aux espaces de noms
- Générateurs de code source et syntaxe orientée classe (préversion) pour les orchestrations fortement typées
Avantages
Le worker isolé .NET offre plusieurs avantages pour les applications Durable Functions :
- Contrôle de version indépendant de .NET : Exécutez votre application sur .NET 8, .NET 9 ou version ultérieure sans attendre que l’hôte Functions soit mis à jour.
-
Injection complète de dépendances : Utilisez des modèles .NET
IServiceCollection/IServiceProviderstandard dans vos activités. - Intergiciel personnalisé : Ajoutez des préoccupations croisées telles que la journalisation, l’authentification ou la gestion des erreurs via le pipeline d’intergiciels de travail Functions.
-
Injection directe d’entrée : L’entrée d’orchestration peut être injectée directement dans la signature de la méthode de déclencheur :
MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input). - Appels fortement typés (préversion) : Avec le package de générateur source, vous obtenez des appels sécurisés au moment de la compilation pour les activités et les sous-orchestrations. Pour plus d’informations, consultez Les générateurs sources et la syntaxe basée sur des classes (préversion).
Pour obtenir la liste complète des avantages des travailleurs isolés, consultez Avantages du modèle de travail isolé.
Get started
Pour créer une application Durable Functions à l’aide du worker isolé .NET :
Installez le package NuGet requis :
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.*" />Utiliser
TaskOrchestrationContextpour les orchestrateurs etDurableTaskClientpour les opérations clientes. Consultez le didacticiel de démarrage rapide pour obtenir une procédure pas à pas complète.
Principales différences par rapport au processus
Si vous effectuez une migration depuis ou une comparaison avec le modèle en cours d'exécution, voici les principales différences :
| Domaine | En cours | Worker isolé .NET |
|---|---|---|
| Package NuGet | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.Azure.Functions.Worker.Extensions.DurableTask |
| Contexte d’orchestration | IDurableOrchestrationContext |
TaskOrchestrationContext |
| Type de client | IDurableOrchestrationClient |
DurableTaskClient |
| Contexte d’activité | IDurableActivityContext |
TaskActivityContext |
| Namespace | Microsoft.Azure.WebJobs.Extensions.DurableTask |
Microsoft.DurableTask / Microsoft.Azure.Functions.Worker |
| Enregistreur fiable sans répétition | context.CreateReplaySafeLogger(log) |
context.CreateReplaySafeLogger("Name") |
Pour obtenir un guide de migration complet qui couvre l’installation du projet, les références de package, les mappages d’API, les différences comportementales et les problèmes courants, consultez Migrer du modèle worker in-process vers un modèle worker isolé.
Générateurs de sources et syntaxe basée sur des classes (aperçu)
Le package de générateur source offre une alternative aux fonctions durables basées sur des fonctions. Au lieu de méthodes statiques avec [Function] des attributs, vous écrivez des classes fortement typées qui héritent du SDK Durable.
Prerequisites
Ajoutez le package NuGet du générateur source à votre projet :
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0" />
Le package offre deux fonctionnalités :
-
Activités et orchestrations basées sur des classes : classes fortement typées qui héritent de
TaskOrchestrator<TInput, TOutput>et deTaskActivity<TInput, TOutput>. - Méthodes d’extension fortement typées : méthodes sécurisées au moment de la compilation pour appeler des sous-orchestrations et des activités. Ces méthodes d’extension fonctionnent également à partir d’orchestrations basées sur des fonctions.
Example
L’exemple suivant montre une orchestration de classe qui appelle une activité de classe :
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
Pour les orchestrations ou les activités qui n’ont pas besoin d’entrée ou de sortie fonctionnelles, utilisez object? comme argument de type générique (par exemple). TaskOrchestrator<object?, object?> Ce modèle vous permet d’utiliser l’injection de dépendances (par exemple) ILogger<T>dans les activités tout en utilisant le modèle basé sur la classe.
Entités durables
Les entités durables sont prises en charge dans le .NET worker isolé. Pour plus d’informations, consultez le guide du développeur.