Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Durable Functions est une extension d’Azure Functions et de WebJobs Azure qui vous permet d’écrire des fonctions avec état dans un environnement serverless. L’extension gère l’état, les points de contrôle et les redémarrages à votre place. Si vous n’êtes pas déjà familiarisé avec Durable Functions, consultez la documentation de présentation.
Microsoft.Azure.WebJobs.Extensions.DurableTask v3.x
Cette section présente le nouveau package Microsoft.Azure.WebJobs.Extensions.DurableTask v3 (appelé WebJobs.Extensions.DurableTask dans les sections suivantes) et fournit des détails sur ses mises à jour et modifications. Cette mise à jour est considérée comme un changement cassant uniquement pour les clients exécutant des applications Durable C# qui utilisent le modèle In-process.
Remarque
Le package .NET Durable Functions out-of-process, Microsoft.Azure.Functions.Worker.Extensions.DurableTask, fait référence à Microsoft.Azure.WebJobs.Extensions.DurableTask comme assembly sous-jacent. Ainsi, cette mise à jour s’applique également à Microsoft.Azure.Functions.Worker.Extensions.DurableTask, à partir de la version 1.2.x.
Nouveau Kit de développement logiciel Azure Storage (SDK)
Par défaut, Durable Functions utilise Stockage Azure comme serveur principal de stockage pour enregistrer durablement l’état de l’application. Dans WebJobs.Extensions.DurableTask v3, le back-end stockage Azure a été mis à niveau pour utiliser les dernières versions des kits SDK Stockage Azure : Azure.Data.Tables, Azure.Storage.Blobs et Azure.Storage.Queues. Les nouveaux kits SDK Stockage Azure sont plus sécurisés et offrent une prise en charge améliorée pour Managed Identity. Ils offrent également de meilleures performances, une gestion des données plus efficace et d’autres fonctionnalités de stockage les plus récentes.
Amélioration de l’efficacité des coûts pour le back-end stockage Azure
Dans le back-end de stockage Azure, le Gestionnaire de partitions est responsable de la distribution des partitions/files d’attente de contrôle entre les travailleurs. Le package WebJobs.Extensions.DurableTask v3 utilise Partition Manager V3 par défaut, qui est une nouvelle conception qui tire parti des tables Azure pour gérer les affectations de partition au lieu des baux d’objets blob Azure. Cette conception peut réduire considérablement les coûts de stockage tout en facilitant le débogage. Lorsque partition Manager V3 est utilisé, une nouvelle table nommée Partitionsest créée dans votre compte de stockage, ce qui vous permet de vérifier facilement les informations de partition.
Suppression de la prise en charge du runtime Functions v1
WebJobs.Extensions.DurableTask v3 ne prend plus en charge la version 1.x du runtime Azure Functions, prise en charge prévue pour se terminer en septembre 2026. Si vous devez utiliser le runtime Functions v1, utilisez une version d’extension Durable Functions inférieure à la version v2.11.0. N’oubliez pas que lorsque la fin planifiée de la prise en charge est prévue, Durable Functions supprime également sa prise en charge du runtime v1.
Mise à jour de .NET Framework
WebJobs.Extensions.DurableTask v3 met à jour le .NET Framework de .NET Core 3.1 vers .NET 6, offrant des performances améliorées et une compatibilité améliorée avec les fonctionnalités et bibliothèques .NET modernes. Cette mise à jour s’aligne sur les futures versions des offres groupées d’extensions Azure Functions.
Migration de WebJobs.Extensions.DurableTask v2.x vers v3.x
La migration de WebJobs.Extensions.DurableTask v2.x vers v3.x est conçue pour être simple sans modification de code requise, car les modifications sont en arrière-plan. Mettez simplement à jour vos dépendances pour commencer à tirer parti des nouvelles fonctionnalités et améliorations de v3.x.
- Pour les utilisateurs in-process .NET : Mise à jour vers Microsoft.Azure.WebJobs.Extensions.DurableTask version 3.0.0 ou ultérieure.
- Pour les utilisateurs isolés .NET : Mise à jour vers Microsoft.Azure.Functions.Worker.Extensions.DurableTask version 1.2.0 ou ultérieure.
- Pour les utilisateurs d’autres langages avec des offres groupées d’extensions : la prise en charge de Durable Functions v3 dans les bundles d’extensions sera disponible à partir de la version 4.22.0.
Remarque
WebJobs.Extensions.DurableTask v3 utilise la dernière version du Kit de développement logiciel (SDK) stockage Azure, qui a un encodage de texte différent (Base64) par rapport à celui utilisé dans v2 (UTF-8). Si vous devez passer de v3.x à v2.x pour garantir la compatibilité descendante, utilisez au moins v2.13.5. Pour les utilisateurs .NET hors processus utilisant Microsoft.Azure.Functions.Worker.Extensions.DurableTask, rétrogradez à la version 1.1.5 ou ultérieure si vous revenez de la version 1.2.x ou supérieure.
Prise en charge et maintenance de v2.x
WebJobs.Extensions.DurableTask v2.x continue de recevoir des mises à jour de sécurité et des correctifs de bogues, ce qui garantit que vos applications existantes restent sécurisées et stables. Toutefois, toutes les nouvelles fonctionnalités et améliorations sont ajoutées exclusivement à v3.x. Pour cette raison, vous devez effectuer une mise à niveau vers WebJobs.Extensions.DurableTask v3 dès que vous pouvez tirer parti des dernières fonctionnalités et des améliorations en cours.
Nouvelles fonctionnalités de Microsoft.Azure.WebJobs.Extensions.DurableTask v2.x
Cette section décrit les fonctionnalités de Durable Functions ajoutées dans la version 2.x.
Remarque
Cette section ne s’applique pas à Durable Functions dans le worker isolé dotnet. Pour cela, consultez la Vue d’ensemble des processus isolés de Durables Functions.
Entités durables
Dans Durable Functions 2.x, nous avons introduit un nouveau concept de fonctions d’entité .
Les fonctions d’entité définissent les opérations pour la lecture et la mise à jour de petits éléments d’état, connus sous le nom d’entités durables. Comme les fonctions d’orchestrateur, les fonctions d’entité sont des fonctions ayant un type spécial de déclencheur, déclencheur d’entité. Contrairement aux fonctions d’orchestrateur, les fonctions d’entité n’ont pas de contraintes de code spécifiques. Les fonctions d’entité gèrent également l’état explicitement plutôt que de représenter implicitement l’état via le flux de contrôle.
Pour en savoir plus, consultez l’article sur les entités durables .
Durable HTTP
Dans Durable Functions 2.x, nous avons introduit une nouvelle fonctionnalité HTTP durable qui vous permet de :
- Appelez des API HTTP directement à partir de fonctions d’orchestration (avec certaines limitations documentées).
- Implémentez le sondage automatique du statut HTTP 202 du côté client.
- Prise en charge intégrée des identités managées Azure.
Pour en savoir plus, consultez l’article sur les fonctionnalités HTTP .
Migrer de 1.x à 2.x
Cette section explique comment migrer votre version 1.x Durable Functions existante vers la version 2.x pour tirer parti des nouvelles fonctionnalités.
Mettre à niveau l’extension
Installez la dernière version 2.x de l’extension liaisons Durable Functions dans votre projet.
JavaScript, Python et PowerShell
Durable Functions 2.x est disponible à partir de la version 2.x du bundle d’extensions Azure Functions.
La prise en charge de Python dans Durable Functions nécessite Durable Functions 2.x ou une version ultérieure.
Pour mettre à jour la version du bundle d’extensions dans votre projet, ouvrez host.json et mettez à jour la section pour utiliser la extensionBundle version 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Remarque
Si Visual Studio Code n’affiche pas les modèles appropriés après avoir modifié la version du groupe d’extensions, rechargez la fenêtre en exécutant la commande Développeur : Recharger la fenêtre (Ctrl+R sur Windows et Linux, Commande+R sur macOS).
Java
Durable Functions 2.x est disponible à partir de la version 4.x du bundle d’extensions Azure Functions. Vous devez utiliser le runtime Azure Functions 4.0 pour exécuter des fonctions Java.
Pour mettre à jour la version du bundle d’extensions dans votre projet, ouvrez host.json et mettez à jour la section pour utiliser la extensionBundle version 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
.FILET
Mettez à jour votre projet .NET pour utiliser la dernière version de l’extension de liaisons Durable Functions.
Pour en savoir plus, consultez Inscrire des extensions de liaison Azure Functions.
Mettre à jour votre code
Durable Functions 2.x introduit plusieurs changements cassants. Les applications Durable Functions 1.x ne sont pas compatibles avec Durable Functions 2.x sans modification du code. Cette section répertorie certaines des modifications que vous devez apporter lors de la mise à niveau de vos fonctions version 1.x vers 2.x.
Schéma Host.json
Durable Functions 2.x utilise un nouveau schéma host.json. Les principales modifications de la version 1.x sont les suivantes :
-
"storageProvider"(et la sous-section"azureStorage") pour la configuration spécifique au stockage. -
"tracing"pour la configuration du suivi et de la journalisation. -
"notifications"(et la sous-section"eventGrid") pour la configuration de notification d’Event Grid.
Pour plus d’informations, consultez la documentation de référence host.json Durable Functions .
Modifications du nom du hub de tâches par défaut
Dans la version 1.x, si un nom de hub de tâches n’a pas été spécifié dans host.json, il a été défini par défaut sur « DurableFunctionsHub ». Dans la version 2.x, le nom du hub de tâches par défaut est maintenant dérivé du nom de l’application de fonction. En raison de cela, si vous n'avez pas spécifié de nom de hub de tâches lors de la mise à niveau vers la version 2.x, votre code fonctionnera avec un nouveau hub de tâches, et toutes les orchestrations en cours d'exécution ne seront plus traitées par une application. Pour contourner ce problème, vous pouvez définir explicitement le nom de votre hub de tâches sur la valeur par défaut v1.x de « DurableFunctionsHub », ou vous pouvez suivre nos conseils de déploiement sans temps d’arrêt pour plus d’informations sur la gestion des modifications majeures pour les orchestrations en cours.
Modifications de l’interface publique (.NET uniquement)
Dans la version 1.x, les différents objets de contexte pris en charge par Durable Functions ont des classes de base abstraites destinées à être utilisées dans les tests unitaires. Dans le cadre de Durable Functions 2.x, ces classes de base abstraites sont remplacées par des interfaces.
Le tableau suivant représente les principales modifications :
| 1.x | 2.x |
|---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient ou IDurableClient |
DurableOrchestrationContext ou DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext ou DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
Dans le cas où une classe de base abstraite contenait des méthodes virtuelles, ces méthodes virtuelles ont été remplacées par des méthodes d’extension définies dans DurableContextExtensions.
Changements dans function.json
Dans Durable Functions 1.x, la liaison du client d’orchestration utilise un type de orchestrationClient. La version 2.x utilise durableClient à la place.
Changements liés au déclenchement d’événements
Dans Durable Functions 1.x, l’appel de l’API de déclenchement d’événement et la spécification d’une instance qui n’existait pas a occasionné un échec silencieux. À partir de 2.x, le déclenchement d’un événement pour une orchestration inexistante entraîne une exception.