Partager via


Démarrage rapide : Configurer une application Durable Functions pour utiliser azure Functions Durable Task Scheduler

Écrire des fonctions avec état dans un environnement serverless à l’aide de Durable Functions, fonctionnalité d’Azure Functions. Les scénarios où Durable Functions est utile incluent l’orchestration des microservices et des flux de travail, des modèles avec état tels que fan-out/fan-in et des tâches de longue durée.

Vous pouvez utiliser le Planificateur de tâches durables comme back-end pour vos Durable Functions afin de stocker l’orchestration et l’état d’exécution de l’entité.

Dans ce guide de démarrage rapide, vous :

  • Configurez une application Durable Functions existante pour utiliser le planificateur de tâches durables.
  • Configurez l’émulateur Durable Task pour le développement local.
  • Déployez votre application sur Azure sur le plan App Service à l’aide de Visual Studio Code.
  • Surveillez l’état de votre application et du hub de tâches dans le tableau de bord du Planificateur de tâches durables.

Conditions préalables

Ce guide de démarrage rapide suppose que vous disposez déjà d’un projet Azure Functions sur votre ordinateur local avec :

  • Fonctions durables ajoutées à votre projet, notamment :
  • Le projet est configuré pour le débogage local.

Si vous ne remplissez pas ces conditions préalables, nous vous recommandons de commencer par l’un des guides de démarrage rapide suivants pour configurer un projet Functions local :

Vous avez également besoin des éléments suivants :

  • Docker installé pour exécuter l’émulateur Durable Task Scheduler.
  • Azurite installé.
  • Outil de test HTTP qui sécurise vos données.

Ajouter le package Planificateur de tâches durables

Installez la dernière version du package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged à l’aide de la commande dotnet add package :

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Remarque

L’extension Durable Task Scheduler nécessite Microsoft.Azure.Functions.Worker.Extensions.DurableTask version 1.2.2 ou ultérieure.

Dans host.json, mettez à jour la extensionBundle propriété pour utiliser la préversion qui contient le package Planificateur de tâches durables :

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.29.0, 5.0.0)"
  }
}

Mise à jour de host.json

Mettez à jour le host.json comme suit pour utiliser Durable Task Scheduler comme backend.

{
  "extensions": {
    "durableTask": {
      "hubName": "%TASKHUB_NAME%",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

Configurer local.settings.json

Ajoutez des informations de connexion pour le développement local :

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
    "TASKHUB_NAME": "default"
  }
}

Configurer l’émulateur de tâche durable

  1. Extrayez l’image Docker contenant l’émulateur.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Exécutez l’émulateur.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    La sortie suivante indique que l’émulateur a démarré correctement.

    Capture d’écran montrant que l’émulateur a démarré correctement sur le terminal.

  3. Notez les ports exposés sur le bureau Docker. Le planificateur expose plusieurs ports à des fins différentes :

    • 8080: point de terminaison gRPC qui permet à une application de se connecter au planificateur
    • 8082 : point de terminaison pour le tableau de bord du Planificateur de tâches durables

    Capture d’écran des ports sur Docker.

Tester localement

  1. Accédez au répertoire racine de votre application et démarrez Azurite.

    azurite start
    
  2. Exécutez l’application.

    func start
    

    Vous devez voir une liste des fonctions dans votre application. Si vous avez créé votre application en suivant l’un des guides de démarrage rapide Durable Functions, vous devez voir quelque chose de similaire à la sortie suivante :

    Capture d’écran des fonctions répertoriées lors de l’exécution de l’application localement.

  3. Démarrez une instance d’orchestration en envoyant une requête HTTP POST au point de terminaison d’URL à l’aide de l’outil de test HTTP que vous avez choisi.

  4. Copiez la valeur de l’URL pour statusQueryGetUri et collez-la dans la barre d’adresse de votre navigateur. Vous devriez voir le statut sur l’instance de l’orchestration :

      {
        "name": "DurableFunctionsOrchestrationCSharp1",
        "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
          "Hello Tokyo!",
          "Hello Seattle!",
          "Hello London!"
        ],
        "createdTime": "2025-02-21T21:09:59Z",
        "lastUpdatedTime": "2025-02-21T21:10:00Z"
      }
    
  5. Pour afficher plus d’informations sur l’instance d’orchestration, accédez au http://localhost:8082/ tableau de bord du Durable Task Scheduler.

  6. Cliquez sur le hub de tâches par défaut pour afficher son tableau de bord.

Remarque

En savoir plus sur le tableau de bord planificateur de tâches durables.

L’émulateur Durable Task Scheduler stocke les données d’orchestration en mémoire, ce qui signifie que toutes les données sont perdues lorsqu’elles s’arrêtent.

Avez-vous des problèmes avec le test ? Consultez le guide de résolution des problèmes.

Exécuter l’application dans Azure

Créer les ressources nécessaires

Créez une instance Durable Task Scheduler et une application Azure Functions sur Azure en suivant le flux de création intégré de l’application de fonction. Cette expérience configure automatiquement l’accès basé sur l’identité et configure les variables d’environnement requises pour que l’application accède au planificateur.

  1. Accédez au panneau de création de l’application Function.

    Capture d’écran des options d’hébergement pour les applications de fonction.

  2. Dans le panneau Créer une application de fonction (Consommation flexible), renseignez les informations dans l’onglet Informations de base.

    Capture d’écran de l’onglet « Informations de base » pour la création d’une application de fonction avec un plan de consommation flexible.

    Champ Descriptif
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Sélectionnez un groupe de ressources existant ou cliquez sur Créer pour en créer un.
    Nom de l’application de fonction Créez un nom unique pour votre application de fonction.
    Voulez-vous déployer du code ou une image conteneur ? Conservez l’option Code sélectionnée.
    Région Sélectionnez l’une des régions prises en charge.
    Pile d’exécution Sélectionnez le runtime que vous utilisez pour ce guide de démarrage rapide.
    Version Sélectionnez la version de votre pile d’exécution.
    Taille de l’instance Sélectionnez une taille d’instance ou utilisez la sélection par défaut. En savoir plus sur les tailles d’instance.
    Redondance de zone Conservez le paramètre Désactivé par défaut.
  3. Sélectionnez l’onglet Fonctions durables .

  4. Choisissez Azure managed : Durable Task Scheduler en tant que fournisseur principal pour vos fonctions durables.

  5. Créez une ressource de planificateur. Cette action crée automatiquement un hub de tâches.

    Capture d’écran de la création d’une application de fonction Flex Consumption.

    Champ Descriptif
    Back-end de stockage Sélectionnez Azure managed : Planificateur de tâches durable.
    Région Vérifiez que les régions du planificateur et de l’application de fonction sont identiques.
    Planificateur de tâches durables Utilisez le nom du planificateur proposé ou cliquez sur Créer pour créer un nom personnalisé.
    Plan Sélectionnez le plan tarifaire qui correspond le mieux à votre projet. Consultez le guide de choix d’un framework d’orchestration pour déterminer quel plan est le mieux adapté à l’utilisation de la production.
    Unités de capacité Applicable uniquement lorsque le plan tarifaire « Dédié » est sélectionné. Vous pouvez sélectionner jusqu’à 3 unités de capacité.
  6. Cliquez sur Vérifier + créer pour passer en revue la création de la ressource.

    Une identité managée affectée par l’utilisateur avec l’autorisation de contrôle d’accès en fonction du rôle (RBAC) requise est créée automatiquement et ajoutée à l’application de fonction. Vous trouverez dans la vue récapitulative les informations relatives à la ressource d’identité managée, telles que :

    • Le rôle qui lui est attribué (Contributeur de données de tâche durable)

    • L’affectation est délimitée au niveau du hub de tâches

      Capture d’écran des champs et propriétés choisis et en révision sous l’onglet Vérifier + créer.

  7. Cliquez sur Créer une fois la validation réussie.

Le déploiement de ressources peut prendre environ 15 à 20 minutes. Une fois cette opération terminée, vous pouvez déployer votre application sur Azure.

Déployer votre application de fonction sur Azure

Important

Le déploiement vers une application de fonction existante remplace toujours le contenu de cette application dans Azure.

  1. Dans la palette de commandes, entrez puis sélectionnez Azure Functions : Déployer sur une application de fonction.

  2. Sélectionnez l’application de fonction que vous venez de créer. Quand vous êtes invité à remplacer les déploiements précédents, sélectionnez Déployer pour déployer le code de votre fonction sur la nouvelle ressource de l’application de fonction.

  3. Une fois le déploiement terminé, sélectionnez Afficher la sortie pour voir les résultats de la création et du déploiement, y compris les ressources Azure que vous avez créées. Si vous manquez la notification, sélectionnez l’icône de la cloche dans le coin inférieur droit pour la voir à nouveau.

    Capture d’écran de la fenêtre Afficher la sortie.

Applications sur le plan Functions Premium

Si votre application est en cours d’exécution sur le plan Functions Premium, activez le paramètre Runtime Scale Monitoring après le déploiement pour vous assurer que vos mises à l’échelle automatiques d’application sont basées sur la charge :

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Tester votre application de fonction

Exécutez la commande suivante pour obtenir l’URL de votre fonction :

az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>  --query '[].{Function:name, URL:invokeUrlTemplate}' --output json

Vérifier l’état de l’orchestration

Vérifiez l’état de l’instance d’orchestration et les détails de l’activité dans le tableau de bord du Planificateur de tâches durables. L’accès au tableau de bord nécessite que vous vous connectiez.

Remarque

L’instruction suivante montre une attribution de rôle délimitée à un hub de tâches spécifique. Si vous avez besoin d’accéder à tous les hubs de tâches dans un planificateur, effectuez l’affectation au niveau du planificateur.

  1. Accédez à la ressource Planificateur de tâches durables sur le portail.

  2. Cliquez sur un nom de hub de tâches.

  3. Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM) .

  4. Cliquez sur Ajouter pour ajouter une attribution de rôle.

    Capture d’écran de l’ajout de l’attribution de rôle dans le volet Contrôle d’accès dans le portail.

  5. Recherchez et sélectionnez Contributeur de données de tâche durable. Cliquez sur Suivant.

    Capture d’écran de la sélection de l’attribution de rôle Contributeur aux données des tâches durables dans le portail.

  6. Sous l’onglet Membres, pour Affecter l’accès à, sélectionnez Utilisateur, groupe ou principal du service.

  7. Pour les membres, cliquez sur + Sélectionner des membres.

  8. Dans le volet Sélectionner des membres , recherchez votre nom ou votre adresse e-mail :

    Capture d’écran de la sélection du type d’identité managée affectée par l’utilisateur dans le portail.

  9. Sélectionnez votre e-mail, puis cliquez sur le bouton Sélectionner .

  10. Cliquez sur Vérifier + affecter pour terminer l’attribution du rôle.

  11. Une fois le rôle attribué, cliquez sur Vue d’ensemble dans le menu de gauche de la ressource du hub de tâches, puis accédez à l’URL du tableau de bord située dans la section Éléments essentiels en haut.

Nettoyer les ressources

Si vous n’avez plus besoin des ressources que vous avez créées pour suivre le démarrage rapide, pour éviter les coûts associés dans votre abonnement Azure, supprimez le groupe de ressources et toutes les ressources associées.

Étapes suivantes