Créer votre première fonction durable dans PowerShell

Durable Functions est une extension d’Azure Functions 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.

Dans cet article, vous allez découvrir comment utiliser l’extension Azure Functions pour Visual Studio Code afin de créer et tester localement une fonction durable appelée « Hello World ». Cette fonction permet d’orchestrer et de chaîner des appels à d’autres fonctions. Vous allez ensuite publier le code de la fonction dans Azure.

Exécution d’une fonction durable dans Azure

Prérequis

Pour suivre ce tutoriel :

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

Créer votre projet local

Dans cette section, vous utilisez Visual Studio Code pour créer un projet Azure Functions local.

  1. Dans Visual Studio Code, appuyez sur F1 (ou Ctrl/Cmd+Maj+P) pour ouvrir la palette de commandes. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Create New Project....

    Créer une fonction

  2. Désignez un emplacement de dossier vide pour votre projet et choisissez Sélectionner.

  3. Suivez les invites et fournissez les informations suivantes :

    Prompt Valeur Description
    Sélectionnez un langage pour votre projet d’application de fonction PowerShell Créez un projet Fonctions de PowerShell local.
    Sélectionner une version Azure Functions v4 Vous voyez cette option uniquement quand les outils Core Tools ne sont pas déjà installés. Dans le cas présent, les outils Core Tools sont installés la première fois que vous exécutez l’application.
    Sélectionner un modèle pour la première fonction de votre projet Ignorer pour le moment
    Sélectionner la façon dont vous souhaitez ouvrir votre projet Ouvrir dans la fenêtre active Ouvre à nouveau VS Code dans le dossier que vous avez sélectionné.

Visual Studio Code installe la solution Azure Functions Core Tools, si nécessaire. 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 fichier package.json est également créé dans le dossier racine.

Configurer l’application de fonction pour utiliser PowerShell 7

Ouvrez le fichier local.settings.json et confirmez que le paramètre nommé FUNCTIONS_WORKER_RUNTIME_VERSION est défini sur ~7. Si ce paramètre est manquant ou défini sur une autre valeur, mettez à jour les contenus du fichier.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "~7"
  }
}

Créer vos fonctions

L’application Durable Functions la plus simple contient trois fonctions :

  • La fonction d’orchestrateur : elle décrit un workflow qui orchestre d’autres fonctions.
  • La fonction d’activité : appelée par la fonction d’orchestrateur, elle effectue un travail et retourne éventuellement une valeur.
  • La fonction de client : une fonction Azure normale qui démarre une fonction d’orchestrateur. Cet exemple utilise une fonction déclenchée via HTTP.

Fonction d’orchestrateur

Vous utilisez un modèle pour créer le code de fonction durable dans votre projet.

  1. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Create Function....

  2. Suivez les invites et fournissez les informations suivantes :

    Prompt Valeur Description
    Sélectionner un modèle pour votre fonction Orchestrateur Durable Functions Créer une orchestration Durable Functions
    Fournir un nom de fonction HelloOrchestrator Nom de votre fonction durable

Vous avez ajouté un orchestrateur pour coordonner les fonctions d’activité. Ouvrez HelloOrchestrator/run.ps1 pour voir la fonction d’orchestrateur. Chaque appel à la cmdlet Invoke-ActivityFunction appelle une fonction d’activité nommée Hello.

Ajoutez maintenant la fonction d’activité Hello référencée.

Fonction d’activité

  1. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Create Function....

  2. Suivez les invites et fournissez les informations suivantes :

    Prompt Valeur Description
    Sélectionner un modèle pour votre fonction Activité Durable Functions Créer une fonction d’activité
    Fournir un nom de fonction Hello Nom de votre fonction d’activité

Vous avez ajouté la fonction d’activité Hello qui est appelée par l’orchestrateur. Ouvrez Hello/run.ps1 pour voir qu’elle accepte un nom comme entrée et retourne un message d’accueil. Une fonction d’activité vous permet d’effectuer des actions, telles que le lancement d’un appel de base de données ou l’exécution d’un calcul.

Pour terminer, vous ajouterez une fonction déclenchée par HTTP qui démarrera l’orchestration.

Fonction de client (démarrage HTTP)

  1. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Create Function....

  2. Suivez les invites et fournissez les informations suivantes :

    Prompt Valeur Description
    Sélectionner un modèle pour votre fonction Démarrage HTTP Durable Functions Créer une fonction de démarrage HTTP
    Fournir un nom de fonction HttpStart Nom de votre fonction d’activité
    Niveau d’autorisation Anonyme À des fins de démonstration, autorisez l’appel sans authentification à la fonction

Vous avez ajouté une fonction déclenchée par HTTP qui démarre une orchestration. Ouvrez HttpStart/run.ps1 pour voir que la cmdlet Start-NewOrchestration est utilisée pour démarrer une nouvelle orchestration. Elle utilise ensuite la cmdlet New-OrchestrationCheckStatusResponse pour retourner une réponse HTTP contenant des URL qui peuvent être utilisées pour superviser et gérer la nouvelle orchestration.

Vous disposez maintenant d’une application Durable Functions qui peut être exécutée localement, et déployée sur Azure.

Notes

La prochaine version de DF PowerShell est désormais en préversion et peut être téléchargée depuis la PowerShell Gallery. En savoir plus à propos et comment l’essayer dans le guide du kit de développement logiciel (SDK) PowerShell autonome. Vous pouvez suivre la section installation du guide pour obtenir des instructions compatibles avec ce démarrage rapide sur la façon de l’activer.

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 application de fonction dans Visual Studio Code.

  1. Pour tester votre fonction, définissez un point d’arrêt dans le code de la Hellofonction d’activité (Hello/run.ps1). Appuyez sur F5 ou sélectionnez Debug: Start Debugging dans la palette de commandes pour démarrer le projet d’application de fonction. La sortie de Core Tools est affichée dans le panneau Terminal.

    Notes

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

  2. Durable Functions nécessite l’exécution d’un compte de stockage Azure. Lorsque VS Code vous invite à sélectionner un compte de stockage, choisissez Sélectionner un compte de stockage.

    Créer un compte de stockage

  3. En suivant les invites, fournissez les informations suivantes pour créer un compte de stockage dans Azure.

    Prompt Valeur Description
    Sélectionner un abonnement nom de votre abonnement Sélectionner votre abonnement Azure
    Sélectionner un compte de stockage Création d’un nouveau compte de stockage
    Entrer le nom du nouveau compte de stockage nom unique Nom du compte de stockage à créer
    Sélectionner un groupe de ressources nom unique Nom du groupe de ressources à créer
    Sélectionner un emplacement region Sélectionner une région proche de vous
  4. Dans le panneau Terminal, copiez le point de terminaison de l’URL de votre fonction déclenchée via HTTP.

    Sortie Azure locale

  5. À l’aide de votre navigateur ou d’un outil comme Postman ou cURL, envoyez une requête HTTP POST au point de terminaison de l’URL. Remplacez le dernier segment par le nom de la fonction d’orchestrateur (HelloOrchestrator). L’URL doit ressembler à http://localhost:7071/api/orchestrators/HelloOrchestrator.

    La réponse est le résultat initial provenant de la fonction HTTP, qui vous indique que l’orchestration durable a bien été démarrée. Il ne s’agit pas encore du résultat final de l’orchestration. La réponse contient plusieurs URL utiles. Pour le moment, demandons l’état de l’orchestration.

  6. Copiez la valeur de l’URL pour statusQueryGetUri, collez-la dans la barre d’adresse du navigateur, puis exécutez la requête. Vous pouvez également continuer à utiliser Postman pour envoyer la requête GET.

    La requête interroge l’instance d’orchestration pour obtenir l’état. Une fois l’exécution de l’instance terminée, vous devez recevoir une réponse comprenant les sorties ou résultats de la fonction durable. Voici comment il se présente :

    {
        "name": "HelloOrchestrator",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  7. Pour arrêter le débogage, appuyez sur Maj + F5 dans VS Code.

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.

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 déjà connecté, choisissez l’icône Azure dans la barre d’activité. Puis, dans la zone Ressources, choisissez Se connecter à Azure....

    Capture d’écran de la connexion à la fenêtre Azure dans VS 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, choisissez Créer un compte Azure.... Les étudiants peuvent choisir Créer un compte Microsoft Azure for Students....

  2. Quand vous y êtes invité dans le navigateur, choisissez votre compte Azure, puis connectez-vous à l’aide de 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 font partie de 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.

  1. Sélectionnez l’icône Azure dans la barre Activité. Ensuite, dans la zone Ressources, sélectionnez l’icône + et choisissez l’option Créer une application de fonction dans Azure.

    Créer une ressource dans votre abonnement Azure

  2. Quand vous y êtes invité, indiquez les informations suivantes :

    Prompt Sélection
    Sélectionner un abonnement choisissez l’abonnement à utiliser. Vous ne verrez pas cette invite si vous n’avez qu’un abonnement visible sous Ressources.
    Entrer un nom global unique pour l’application de fonction Tapez un nom valide dans un chemin d’URL. Le système vérifie que le nom que vous tapez est unique dans Azure Functions.
    Sélectionner une pile d’exécution Choisissez la version du langage que vous avez exécutée localement.
    Sélectionnez un emplacement pour les nouvelles ressources Pour de meilleures performances, choisissez une région proche de vous.

    L’extension montre l'état des ressources individuelles au fur et à mesure qu’elles sont créées dans Azure, dans le panneau Azure : journal d’activité.

    Journal de création de ressource Azure

  3. Quand la création est terminée, les ressources Azure suivantes sont créées dans votre abonnement. Les ressources sont nommées en fonction du nom de 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 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, qui suit 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 à votre application de fonction sont créées d’après le nom d’application de fonction que vous indiquez. Par défaut, elles sont également créées dans le même nouveau groupe de ressources avec l’application de fonction. Si vous souhaitez personnaliser les noms de ces ressources ou réutiliser des ressources existantes, vous devez plutôt publier le projet à l’aide des 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 zone Ressources de l’activité Azure, recherchez la ressource d’application de fonction que vous venez de créer, cliquez avec le bouton droit sur la ressource, puis sélectionnez Déployer sur l’application de fonction....

  2. 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 afficher 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 de nouveau.

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

Tester votre fonction dans Azure

  1. Copiez l’URL du déclencheur HTTP à partir du panneau Sortie. L’URL qui appelle la fonction déclenchée via HTTP doit se présenter sous ce format : https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

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

Étapes suivantes

Vous avez utilisé Visual Studio Code pour créer et publier une application de fonction durable PowerShell.