Partage via


Démarrage rapide : Créer une application Durable Functions C#

Utilisez Durable Functions, une fonctionnalité d’Azure Functions, pour écrire des fonctions avec état dans un environnement serverless. Durable Functions gère l’état, les points de contrôle et les redémarrages dans votre application.

Comme Azure Functions, Durable Functions prend en charge deux modèles de processus pour les fonctions de bibliothèque de classes .NET. Pour en savoir plus sur les deux processus, consultez Différences entre les processus in-process et les processus Worker isolés Azure Functions de .NET.

Dans ce démarrage rapide, vous utilisez Visual Studio Code pour créer et tester localement une application Durable Functions « hello world ». L’application de fonction orchestre et chaîne des appels à d’autres fonctions. Ensuite, vous publiez le code de la fonction dans Azure. Les outils que vous utilisez sont disponibles via l’extension Azure Functions de Visual Studio Code.

Capture d’écran montrant le code de l’application Durable Functions dans Visual Studio Code.

Prérequis

Pour effectuer ce démarrage rapide, les éléments suivants sont requis :

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Créer un projet Azure Functions

Dans Visual Studio Code, créez un projet Azure Functions local.

  1. Dans le menu Affichage, sélectionnez Palette de commandes (ou appuyez sur Ctrl+Maj+P).

  2. À l’invite (>), entrez puis sélectionnez Azure Functions : Créer un projet.

    Capture d’écran montrant la commande pour créer un projet Functions.

  3. Cliquez sur Parcourir. Dans la boîte de dialogue Sélectionner un dossier, accédez à un dossier à utiliser pour votre projet, puis choisissez Sélectionner.

  4. Aux invites, sélectionnez ou entrez les valeurs suivantes :

    Prompt Action Description
    Sélectionner un langage pour votre projet d’application de fonction Sélectionnez C#. Crée un projet Functions C# local.
    Sélectionner une version Sélectionnez Azure Functions v4. Vous voyez cette option seulement quand Core Tools n’est pas déjà installé. Core Tools est installé la première fois que vous exécutez l’application.
    Sélectionner un runtime .NET Sélectionnez .NET 8.0 isolé. Crée un projet Functions qui prend en charge .NET 8 s’exécutant dans un processus Worker isolé et le runtime d’Azure Functions 4.0. Pour plus d’informations, consultez Guide pratique pour cibler la version du runtime Azure Functions.
    Sélectionner un modèle pour la première fonction de votre projet Sélectionnez Orchestration de Durable Functions. Créez une orchestration Durable Functions.
    Choisir un type de stockage durable Sélectionnez Stockage Azure. Fournisseur de stockage par défaut pour Durable Functions. Pour plus d’informations, consultez Fournisseurs de stockage Durable Functions.
    Fournir un nom de fonction Entrez HelloOrchestration. Un nom pour la fonction d’orchestration.
    Fournir un espace de noms Entrez Company.Function. Un espace de noms pour la classe générée.
    Sélectionner la façon dont vous souhaitez ouvrir votre projet Sélectionnez Ouvrir dans la fenêtre actuelle. Ouvre Visual Studio Code dans le dossier que vous avez sélectionné.

Visual Studio Code installe Azure Functions Core Tools s’il est nécessaire pour créer le projet. Il crée également un projet d’application de fonction dans un dossier. Ce projet contient les fichiers config host.json et local.settings.json.

Un autre fichier, HelloOrchestration.cs, contient les composants de construction de base d’une application Durable Functions :

Méthode Description
HelloOrchestration Définit l’orchestration de l’application Durable Functions. Dans le cas présent, l’orchestration démarre, crée une liste et ajoute le résultat des trois appels de fonction à la liste. À la fin des trois appels de fonction, elle retourne la liste.
SayHello Une application de fonction simple qui retourne hello. Cette fonction contient la logique métier qui est orchestrée.
HelloOrchestration_HttpStart Une fonction déclenchée par HTTP qui démarre une instance de l’orchestration et retourne une réponse Vérifier l’état.

Pour plus d’informations sur ces fonctions, consultez Types et fonctionnalités de Durable Functions.

Configurer le stockage

Vous pouvez utiliser Azurite, un émulateur pour Stockage Azure, afin de tester la fonction localement. Dans local.settings.json, définissez la valeur de AzureWebJobsStorage sur UseDevelopmentStorage=true, comme dans cet exemple :

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  }
}

Pour installer et démarrer l’exécution de l’extension Azurite dans Visual Studio Code, dans la palette de commandes, entrez Azurite: Start, puis sélectionnez Entrée.

Vous pouvez utiliser d’autres options de stockage pour votre application Durable Functions. Pour plus d’informations sur les options de stockage et leurs avantages, consultez Fournisseurs de stockage Durable Functions.

Tester la fonction en local

Azure Functions Core Tools vous permet d’exécuter un projet Azure Functions sur votre ordinateur de développement local. Vous êtes invité à installer ces outils la première fois que vous démarrez une fonction dans Visual Studio Code.

  1. Dans Visual Studio Code, définissez un point d’arrêt dans le code de la fonction d’activité SayHello, puis sélectionnez F5 pour démarrer le projet d’application de fonction. Le panneau Terminal affiche la sortie de Core Tools.

    Remarque

    Pour plus d’informations sur le débogage, consultez Diagnostics Durable Functions.

    Si le message Aucune fonction de travail trouvée s’affiche, mettez à jour votre installation d’Azure Functions Core Tools vers la dernière version.

  2. Dans le panneau Terminal, copiez le point de terminaison de l’URL de votre fonction déclenchée par HTTP.

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

  3. Utilisez un outil de test HTTP pour envoyer une requête POST HTTP au point de terminaison d’URL.

    La réponse est le résultat initial de la fonction HTTP. Il vous permet de savoir que l’orchestration de l’application Durable Functions a démarré correctement. Elle n’affiche pas encore le résultat final de l’orchestration. La réponse contient plusieurs URL utiles.

    À ce stade, votre point d’arrêt dans la fonction d’activité doit être atteint car l’orchestration a démarré. Exécutez pas à pas pour obtenir une réponse pour l’état de l’orchestration.

  4. Copiez la valeur de l’URL pour statusQueryGetUri, collez-la dans la barre d’adresse de votre navigateur, puis exécutez la requête. Vous pouvez également continuer à utiliser l’outil de test HTTP pour émettre la requête GET.

    La requête interroge l’instance d’orchestration pour obtenir l’état. Vous devez voir que l’instance s’est terminée, et qu’elle inclut les sorties ou les résultats de l’application Durable Functions comme dans cet exemple :

    {
        "name":"HelloCities",
        "instanceId":"7f99f9474a6641438e5c7169b7ecb3f2",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello, Seattle!",
        "createdTime":"2023-01-31T18:48:49Z",
        "lastUpdatedTime":"2023-01-31T18:48:56Z"
    }
    

    Conseil

    Découvrez comment vous pouvez observer le comportement de réexécution d’une application Durable Functions via des points d’arrêt.

  5. Pour arrêter le débogage, dans Visual Studio Code, sélectionnez Maj+F5.

Après avoir vérifié que la fonction s’exécute correctement sur votre ordinateur local, vous pouvez publier le projet sur Azure.

Connexion à Azure

Avant de pouvoir créer des ressources Azure ou de publier votre application, vous devez vous connecter à Azure.

  1. Si vous n’êtes pas encore connecté, dans la Barre d’activité, sélectionnez l’icône Azure. Ensuite, sous Ressources, sélectionnez Se connecter à Azure.

    Capture d’écran de la fenêtre de connexion à Azure dans Visual Studio Code.

    Si vous êtes déjà connecté et que vous pouvez voir vos abonnements existants, accédez à la section suivante. Si vous n’avez pas encore de compte Azure, Créez un compte Azure. Les étudiants peuvent sélectionner Créer un compte Azure for Students.

  2. Quand vous y êtes invité dans le navigateur, sélectionnez votre compte Azure et connectez-vous avec vos informations d’identification de compte Azure. Si vous créez un compte, vous pouvez vous connecter une fois votre compte créé.

  3. Une fois la connexion réussie, vous pouvez fermer la nouvelle fenêtre de navigateur. Les abonnements qui appartiennent à votre compte Azure sont affichés dans la barre latérale.

Créer l’application de fonction dans Azure

Dans cette section, vous créez une application de fonction et les ressources associées dans votre abonnement Azure. La plupart des décisions de création de ressources sont prises pour vous en fonction des comportements par défaut. Pour plus de contrôle sur les ressources créées, vous devez plutôt créer votre application de fonction avec des options avancées.

  1. Dans Visual Studio Code, sélectionnez F1 pour ouvrir la palette de commandes. À l’invite (>), entrez puis sélectionnez Azure Functions : Créer une application de fonction dans Azure.

  2. En suivant les invites, saisissez les informations suivantes :

    Prompt Action
    Sélectionner un abonnement Sélectionnez l’abonnement Azure à utiliser. L’invite n’apparaît pas quand vous n’avez qu’un seul abonnement visible sous Ressources.
    Entrer un nom global unique pour l’application de fonction Entrez un nom qui est valide dans un chemin d’URL. Le système vérifie que le nom que vous entrez est unique dans Azure Functions.
    Sélectionner une pile d’exécution Sélectionnez la version du langage que vous exécutez localement actuellement.
    Sélectionnez un emplacement pour les nouvelles ressources Sélectionnez une région Azure dans le champ Region (Région). Pour de meilleures performances, sélectionnez une région proche de vous.

    Dans le panneau Azure : Journal d’activité, l’extension Azure affiche l’état des ressources individuelles à mesure qu’elles sont créées dans Azure.

    Capture d’écran du journal de la création de ressources Azure.

  3. Quand l’application de fonction est créée, les ressources associées suivantes sont créées dans votre abonnement Azure. Les ressources sont nommées en fonction du nom que vous avez entré pour votre application de fonction.

    • Un groupe de ressources, qui est un conteneur logique pour les ressources associées.
    • Un compte Stockage Azure standard, qui conserve l’état et d’autres informations spécifiques à vos projets.
    • Une application de fonction, qui fournit l’environnement d’exécution de votre code de fonction. Une application de fonction vous permet de regrouper des fonctions en une unité logique pour faciliter la gestion, le déploiement et le partage des ressources au sein du même plan d’hébergement.
    • Un plan Azure App Service, qui définit l’hôte sous-jacent pour votre application de fonction.
    • Une instance Application Insights connectée à l’application de fonction et qui fait le suivi de l’utilisation de vos fonctions dans l’application.

    Une notification s’affiche après que votre application de fonction a été créée et que le package de déploiement a été appliqué.

    Conseil

    Par défaut, les ressources Azure nécessaires pour votre application de fonction sont créées selon le nom que vous avez saisi pour votre application de fonction. Par défaut, les ressources sont créées avec l’application de fonction dans le même nouveau groupe de ressources. Si vous voulez personnaliser les noms des ressources associées ou réutiliser des ressources existantes, publiez le projet en utilisant les options de création avancées.

Déployer le projet dans 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 cloche dans le coin inférieur droit pour la voir à nouveau.

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

Tester votre fonction dans Azure

  1. Dans le panneau de sortie de Visual Studio Code, copiez l’URL du déclencheur HTTP. L’URL qui appelle la fonction déclenchée via HTTP doit être au format suivant :

    https://<function-app-name>.azurewebsites.net/api/HelloOrchestration_HttpStart

  2. Collez la nouvelle URL pour la requête HTTP dans la barre d’adresse de votre navigateur. Vous devez obtenir la même réponse d’état quand vous utilisez l’application publiée que quand vous avez testé localement.

L’application Durable Functions C# que vous avez créée et publiée en utilisant Visual Studio Code est prête à être utilisée.

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.

Dans ce démarrage rapide, vous utilisez Visual Studio 2022 pour créer et tester localement une application Durable Functions « hello world ». La fonction orchestre et chaîne des appels à d’autres fonctions. Ensuite, vous publiez le code de la fonction dans Azure. Les outils que vous utilisez sont disponibles via la charge de travail de développement Azure dans Visual Studio 2022.

Capture d’écran montrant le code de l’application Durable Functions dans Visual Studio 2019.

Prérequis

Pour effectuer ce démarrage rapide, les éléments suivants sont requis :

  • Visual Studio 2022 installé.

    Vérifiez que la charge de travail de développement Azure est également installée. Visual Studio 2019 prend également en charge le développement Durable Functions, mais l’interface utilisateur et les étapes diffèrent.

  • L’émulateur Azure installé et en cours d’exécution.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Créer un projet d’application de fonction

Le modèle Azure Functions crée un projet qui vous pouvez publier sur une application de fonction dans Azure. Vous pouvez utiliser une application de fonction pour regrouper des fonctions en tant qu’unité logique pour gérer, déployer, mettre à l’échelle et partager plus facilement des ressources.

  1. Dans Visual Studio, dans le menu Fichier, sélectionnez Nouveau>Projet.

  2. Dans Créer un projet, recherchez fonctions, sélectionnez le modèle Azure Functions, puis sélectionnez Suivant.

    Capture d’écran de la boîte de dialogue Nouveau projet dans Visual Studio.

  3. Pour Nom du projet, entrez un nom pour votre projet, puis sélectionnez OK. Le nom de projet devant être valide en tant qu’espace de noms C#, n’utilisez ni traits d’union, ni traits de soulignement, ni de caractère non alphanumérique.

  4. Dans Informations supplémentaires, utilisez les paramètres décrits dans le tableau suivant.

    Capture d’écran de la boîte de dialogue Créer une application Azure Functions dans Visual Studio.

    Setting Action Description
    Worker Functions Sélectionnez .NET 8 isolé (Support à long terme). Crée un projet Azure Functions qui prend en charge .NET 8 s’exécutant dans un processus Worker isolé et le runtime d’Azure Functions 4.0. Pour plus d’informations, consultez Comment cibler la version du runtime d’Azure Functions.
    Fonction Entrez Orchestration de Durable Functions. Créez une orchestration Durable Functions.

    Remarque

    Si .NET 8 isolé (Support à long terme) n’apparaît pas dans le menu Worker Functions, vous n’avez peut-être pas les ensembles d’outils et les modèles Azure Functions les plus récents. Accédez à Outils>Options>Projets et solutions>Azure Functions>Rechercher les mises à jour pour télécharger les plus récentes.

  5. Pour utiliser l’émulateur Azurite, vérifiez que la case Utiliser Azurite pour le compte de stockage du runtime (AzureWebJobStorage) est cochée. Pour créer un projet Functions en utilisant un modèle d’orchestration Durable Functions, sélectionnez Créer. Ce projet contient les fichiers de configuration de base nécessaires à l’exécution de vos fonctions.

    Remarque

    Vous pouvez choisir d’autres options de stockage pour votre application Durable Functions. Pour plus d’informations, consultez Fournisseurs de stockage Durable Functions.

Dans le dossier de votre application, un fichier nommé Function1.cs contient trois fonctions. Les trois fonctions sont les composants de construction de base d’une application Durable Functions :

Méthode Description
RunOrchestrator Définit l’orchestration de l’application Durable Functions. Dans le cas présent, l’orchestration démarre, crée une liste et ajoute le résultat des trois appels de fonction à la liste. À la fin des trois appels de fonction, elle retourne la liste.
SayHello Une application de fonction simple qui retourne hello. Cette fonction contient la logique métier qui est orchestrée.
HttpStart Une fonction déclenchée par HTTP qui démarre une instance de l’orchestration et retourne une réponse Vérifier l’état.

Pour plus d’informations sur ces fonctions, consultez Types et fonctionnalités de Durable Functions.

Tester la fonction en local

Azure Functions Core Tools vous permet d’exécuter un projet Azure Functions sur votre ordinateur de développement local. Vous êtes invité à installer ces outils la première fois que vous démarrez une fonction dans Visual Studio Code.

  1. Dans Visual Studio Code, définissez un point d’arrêt dans le code de la fonction d’activité SayHello, puis sélectionnez F5. Si vous y êtes invité, acceptez la demande de Visual Studio pour télécharger et installer les outils Azure Functions Core (en ligne de commande). Vous devrez peut-être aussi activer une exception de pare-feu afin de permettre aux outils de prendre en charge les requêtes HTTP.

    Remarque

    Pour plus d’informations sur le débogage, consultez Diagnostics Durable Functions.

  2. Copiez l’URL de votre fonction à partir de la sortie runtime Azure Functions.

    Capture d’écran du runtime local Azure.

  3. Collez l’URL de la requête HTTP dans la barre d’adresse de votre navigateur et exécutez la requête. La capture d’écran suivante montre la réponse à la requête GET locale que la fonction retourne au navigateur :

    Capture d’écran de la fenêtre de navigateur avec statusQueryGetUri appelé.

    La réponse est le résultat initial de la fonction HTTP. Il vous permet de savoir que l’orchestration durable a démarré correctement. Elle n’affiche pas encore le résultat final de l’orchestration. La réponse contient plusieurs URL utiles.

    À ce stade, votre point d’arrêt dans la fonction d’activité doit être atteint, car l’orchestration a démarré. Exécutez pas à pas pour obtenir une réponse pour l’état de l’orchestration.

  4. Copiez la valeur de l’URL pour statusQueryGetUri, collez-la dans la barre d’adresse de votre navigateur, puis exécutez la requête.

    La requête interroge l’instance d’orchestration pour obtenir l’état. Vous devez voir que l’instance s’est terminée, et qu’elle inclut les sorties ou les résultats de la fonction durable, comme dans cet exemple :

    {
        "name":"HelloCities",
        "instanceId":"668814ac6ce84a43a9e6757f81dbc0bc",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello Seattle!",
        "createdTime":"2023-01-31T16:44:34Z",
        "lastUpdatedTime":"2023-01-31T16:44:37Z"
    }
    

    Conseil

    Découvrez comment vous pouvez observer le comportement de réexécution d’une application Durable Functions via des points d’arrêt.

  5. Pour arrêter le débogage, sélectionnez Maj+F5.

Après avoir vérifié que la fonction s’exécute correctement sur votre ordinateur local, il est temps de publier le projet sur Azure.

Publication du projet sur Azure

Vous devez disposer d’une application de fonction dans votre abonnement Azure avant de publier votre projet. Vous pouvez créer une application de fonction dans Visual Studio.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Publier. Dans Cible, sélectionnez Azure, puis Suivant.

    Capture d’écran du volet de publication.

  2. Dans Cible spécifique, sélectionnez Application de fonction Azure (Windows). Une application de fonction qui s’exécute sur Windows est créée. Cliquez sur Suivant.

    Capture d’écran d’un volet de publication qui a une cible spécifique.

  3. Dans la page Instance de Functions, sélectionnez Créer une fonction Azure.

    Capture d’écran montrant Créer une instance d’application de fonction.

  4. Créez une instance en utilisant les valeurs spécifiées dans le tableau suivant :

    Paramètre valeur Description
    Nom Nom globalement unique Nom qui identifie uniquement votre nouvelle application de fonction. Acceptez ce nom ou entrez un nouveau nom. Les caractères valides sont a-z, 0-9 et -.
    Abonnement Votre abonnement Sélectionnez l’abonnement Azure à utiliser. Acceptez cet abonnement ou sélectionnez-en un nouveau dans la liste déroulante.
    Groupe de ressources Nom de votre groupe de ressources Groupe de ressources dans lequel vous souhaitez créer votre application de fonction. Sélectionnez Nouveau pour créer un groupe de ressources. Vous pouvez également choisir d’utiliser un groupe de ressources existant dans la liste déroulante.
    Type de plan Consommation Quand vous publiez votre projet dans une application de fonction qui s’exécute dans un Plan Consommation, vous payez uniquement pour les exécutions de votre application de fonction. D’autres plans d’hébergement occasionnent des coûts plus élevés.
    Lieu Emplacement du service d’application Sélectionnez un Emplacement dans une région Azure proche de vous ou d’autres services auxquels vos fonctions accèdent.
    Stockage Azure Compte de stockage à usage général Un compte de stockage Azure est obligatoire par le runtime Functions. Sélectionnez Nouveau pour configurer un compte de stockage universel. Vous pouvez également choisir d’utiliser un compte existant qui répond aux exigences relatives aux comptes de stockage.
    Application Insights Instance Application Insights Vous devez activer l’intégration d’Azure Application Insights pour votre application de fonction. Sélectionnez Nouveau pour créer une instance dans un espace de travail Log Analytics nouveau ou existant. Vous pouvez également choisir d’utiliser une instance existante.

    Capture d’écran de la boîte de dialogue Créer App Service.

  5. Sélectionnez Créer pour créer une application de fonction et les ressources associées dans Azure. L’état de la création des ressources est affiché dans le coin inférieur gauche de la fenêtre.

  6. Dans Instance de Functions, vérifiez que la case Exécuter à partir du fichier de package est cochée. Votre application de fonction est déployée en utilisant Zip Deploy avec le mode Exécuter à partir du fichier de package activé. Zip Deploy est la méthode de déploiement recommandée pour votre projet Functions, car elle offre de meilleures performances.

    Capture d’écran du volet Terminer la création du profil.

  7. Sélectionnez Terminer puis, dans le volet Publier, sélectionnez Publier pour déployer le package contenant vos fichiers projet sur votre nouvelle application de fonction dans Azure.

    Une fois le déploiement terminé, l’URL racine de l’application de fonction dans Azure est affichée sous l’onglet Publier.

  8. Sous l’onglet Publier, dans la section Hébergement, sélectionnez Ouvrir dans le portail Azure. La nouvelle ressource Azure d’application de fonction s’ouvre dans le portail Azure.

    Capture d’écran du message Réussite de la publication.

Tester votre fonction dans Azure

  1. Dans la page Publier le profil, copiez l’URL de base de l’application de fonction. Remplacez la partie localhost:port de l’URL que vous avez utilisée quand vous testez la fonction localement par la nouvelle URL de base.

    L’URL qui appelle le déclencheur HTTP de la fonction durable doit être au format suivant :

    https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart

  2. Collez la nouvelle URL pour la requête HTTP dans la barre d’adresse de votre navigateur. Quand vous testez l’application publiée, vous devez obtenir la même réponse d’état que celle que vous avez obtenue quand vous avez testé localement.

L’application Durable Functions C# que vous avez créée et publiée en utilisant Visual Studio est prête à être utilisée.

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.