Partage via


Créer des fonctions Durable Functions à l’aide du portail Azure

L’extension Fonctions durables d’Azure Functions est fournie dans le package NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Cette extension doit être installée dans votre application de fonction. Cet article explique comment installer ce package, pour vous permettre de développer des fonctions durables dans le portail Azure.

Notes

Créer une application de fonction

Vous devez disposer d’une application de fonction pour héberger l’exécution d’une fonction. Une application de fonctions vous permet de regrouper vos fonctions en une unité logique pour faciliter la gestion, le déploiement, la mise à l'échelle et le partage des ressources. Vous pouvez créer une application .NET ou JavaScript.

  1. Dans le menu du portail Azure ou dans la page Accueil, sélectionnez Créer une ressource.

  2. Dans la page Nouveau, sélectionnez Calcul>Application de fonction.

  3. Sous Sélectionner une option d’hébergement, sélectionnez Consommation>Sélectionner pour créer votre application dans le plan de Consommation par défaut. Avec cette option d’hébergement serverless, vous payez uniquement pour la durée d’exécution de vos fonctions. Le plan Premium offre également une mise à l'échelle dynamique. Si vous exécutez dans un plan App Service, vous devez gérer la mise à l’échelle de votre application de fonction.

  4. Dans la page De base, utilisez les paramètres d’application de fonction comme indiqué dans le tableau ci-dessous :

    Paramètre Valeur suggérée Description
    Abonnement Votre abonnement L'abonnement sous lequel vous créez votre nouvelle application de fonction.
    Groupe de ressources myResourceGroup Nom du nouveau groupe de ressources dans lequel vous créez votre application de fonction. Vous devez créer un groupe de ressources du fait de limitations connues lors de la création d’applications de fonction dans un groupe de ressources existant.
    Nom de l’application de fonction Nom globalement unique Nom qui identifie votre nouvelle Function App. Les caractères valides sont a-z (insensible à la casse), 0-9et -.
    Pile d’exécution Langage préféré Choisissez un runtime qui prend en charge votre langage de programmation de fonction favori. L’édition dans le portail n’est disponible que pour les scripts JavaScript, PowerShell, Python, TypeScript et C#.
    Pour créer une application C# Script qui prend en charge la modification dans le portail, vous devez choisir un runtimeVersion qui prend en charge le modèle in-process.
    La bibliothèque de classes C# et les fonctions Java doivent être développées localement.
    Version Numéro de version Choisissez la version de votre runtime installé.
    Région Région recommandée Sélectionnez une région proche de chez vous, ou proche d’autres services auxquels vos fonctions peuvent accéder.
    Système d’exploitation Windows Un système d'exploitation est présélectionné pour vous en fonction de votre sélection de pile d'exécution, mais vous pouvez modifier ce paramètre si nécessaire. La modification sur le portail est prise en charge sur Windows uniquement.
  5. Acceptez les options par défaut dans les onglets restants, y compris le comportement par défaut de création d’un compte de stockage sous l’onglet Stockage, ainsi qu’une nouvelle instance Application Insight sous l’onglet Surveillance. Vous pouvez également choisir d’utiliser un compte de stockage existant ou une instance Application Insights.

  6. Sélectionnez Examiner + créer pour examiner la configuration de l'application que vous avez choisie, puis sélectionnez Créer pour approvisionner et déployer l'application de fonction.

  7. Cliquez sur l’icône Notifications en haut à droite du portail pour voir le message Le déploiement a été effectué.

  8. Sélectionnez Accéder à la ressource pour afficher votre nouvelle application de fonction. Vous pouvez également sélectionner Épingler au tableau de bord. L’épinglage permet de revenir plus facilement à cette ressource d’application de fonction à partir de votre tableau de bord.

    Capture d’écran de la notification du déploiement.

Par défaut, l’application de fonction créée utilise la version 2.x du runtime d’Azure Functions. L’extension Durable Functions fonctionne sur les deux versions 1.x et 2.x du runtime d’Azure Functions en C#, et dans la version 2.x en JavaScript. Toutefois, les modèles sont disponibles uniquement lorsque vous ciblez la version 2.x du runtime, quel que soit le langage choisi.

Installer le package npm durable-functions (JavaScript uniquement)

Si vous créez des fonctions Durable Functions JavaScript, vous devez installer le package NPM durable-functions :

  1. Dans la page de votre application de fonction, dans le volet gauche, sélectionnez Outils avancés sous Outils de développement.

    Les fonctionnalités de la plateforme Functions choisissent Kudu

  2. Dans la page Outils avancés, sélectionnez Go.

  3. Dans la console Kudu, sélectionnez Console de débogage, puis CMD.

    Console de débogage Kudu

  4. La structure de répertoires de fichiers de votre application de fonction doit s’afficher. Accédez au dossier site/wwwroot. À partir de cet emplacement, vous pouvez charger un fichier package.json en le faisant glisser et en le déposant dans la fenêtre de répertoires de fichiers. Voici un exemple de fichier package.json :

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Chargement du fichier package.json dans Kudu

  5. Une fois votre fichier package.json chargé, exécutez la commande npm install dans la console d’exécution à distance Kudu.

    Exécution de la commande npm install dans Kudu

Créer une fonction d’orchestrateur

  1. Dans votre application de fonction, sélectionnez Fonctions dans le volet de gauche, puis Ajouter dans le menu supérieur.

  2. Dans le champ de recherche de la page nouvelle fonction, entrez durable, puis choisissez le modèle Démarrage HTTP Durable Functions.

    Sélectionner Démarrage HTTP Durable Functions

  3. Pour la nom de la Nouvelle fonction, entrez HttpStart, puis sélectionnez Créer une fonction.

    La fonction créée est utilisée pour démarrer l’orchestration.

  4. Créez une autre fonction dans l’application de fonction, cette fois en utilisant le modèle Orchestrateur Durable Functions. Nommez votre nouvelle fonction d’orchestration HelloSequence.

  5. Créez une troisième fonction nommée Hello à l’aide du modèle Activité Durable Functions.

Tester l’orchestration de la fonction durable

  1. Revenez à la fonction HttpStart, choisissez Obtenir l’URL de la fonction, puis sélectionnez l’icône Copier dans le Presse-papiers pour copier l’URL. Cette URL vous permet de démarrer la fonction HelloSequence.

  2. Utilisez un outil de test HTTP sécurisé pour envoyer une requête POST HTTP au point de terminaison d’URL. Cet exemple est une commande cURL qui envoie une requête POST à la fonction durable :

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    Dans cet exemple, {your-function-app-name} est le domaine qui est le nom de votre application de fonction, et {functionName} est la fonction d’orchestrateur HelloSequence. Le message de réponse contient un ensemble de points de terminaison d’URI que vous pouvez utiliser pour surveiller et gérer l’exécution, qui ressemble à l’exemple suivant :

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    

    Veillez à choisir un outil de test HTTP qui sécurise vos données. Pour découvrir plus d’informations, consultez Outils de test HTTP.

  3. Appelez l’URI de point de terminaison statusQueryGetUri et l’état actuel de la fonction durable s’affiche. Il peut se présenter comme dans cet exemple :

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Continuez d’appeler le point de terminaison statusQueryGetUri jusqu’à ce que l’état passe à Terminé, et qu’une réponse s’affiche, similaire à l’exemple suivant :

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

Votre première fonction durable est maintenant opérationnelle dans Azure.

Étapes suivantes