Créer et exécuter des fonctions Azure localement avec Core Tools

Effectué

Azure Functions Core Tools vous permet de développer et d’exécuter des fonctions sur votre ordinateur local à partir de la ligne de commande.

Vous souhaitez créer votre première fonction, une calculatrice d’intérêt simple, localement sur votre propre ordinateur et non dans l’éditeur de fonctions du portail Azure. Vous n’êtes pas sûr de vouloir utiliser un environnement de développement comme Visual Studio ou Visual Studio Code, qui peuvent tous deux être étendus pour prendre en charge Azure Functions directement. Finalement, vous décidez d’utiliser les outils Core Tools à partir de la ligne de commande et un éditeur de texte de base.

Dans cette leçon, vous allez apprendre à utiliser Core Tools pour créer et exécuter des fonctions localement. Découvrons-en davantage sur Core Tools avant de l’utiliser dans l’exercice de l’unité suivante, qui vous guide tout au long de ces concepts au moyen d’Azure Cloud Shell.

Qu’est-ce qu’Azure Functions Core Tools ?

Azure Functions Core Tools est un runtime autonome, ainsi qu’un ensemble d’outils en ligne de commande que vous pouvez utiliser pour développer, exécuter et déployer du code de fonction à partir de votre ordinateur local.

Core Tools prend en charge plusieurs fonctionnalités liées aux fonctions, notamment :

  • Générer les fichiers et dossiers dont vous avez besoin pour développer des fonctions localement.
  • Fournir un runtime local pour pouvoir tester et déboguer des fonctions sur votre ordinateur.
  • Publier vos fonctions sur Azure

À l’aide de Core Tools, vous pouvez effectuer ces tâches à partir de la ligne de commande. Utilisez n’importe quel éditeur de texte que vous souhaitez écrire du code et modifier la configuration. Vous avez également besoin d’Azure CLI ou d’Azure PowerShell pour vous connecter à Azure, créer des ressources Azure et déployer des fichiers projet.

Core Tools est empaqueté en tant qu’utilitaire en ligne de commande unique nommé func. Si vous exécutez func à partir de la ligne de commande sans aucune autre commande, elle affiche les informations de version et un guide d’utilisation. Vous n’avez pas besoin de lire ce texte maintenant, mais voici à quoi il ressemble :

A portion of the help text output by func.

Visual Studio et Visual Studio Code utilisent Core Tools pour offrir une expérience de débogage locale intégrée.

Voici quelques concepts fondamentaux sur les fonctions.

Applications de fonction et projets de fonctions

Quand vous développez des fonctions localement, vous travaillez dans un projet de fonctions. Le projet est un dossier qui contient le code et les fichiers de configuration qui définissent vos fonctions. Ce projet de code est déployé sur une application de fonction ressource dans Azure. Dans une instance d’application de fonction, toutes les fonctions partagent un ensemble commun de valeurs et de ressources de configuration.

Chaque application de fonction cible une pile de langage spécifique, et chaque pile a ses propres exigences de projet spécifiques au langage. Heureusement, vous n’avez jamais besoin de créer manuellement un projet de fonctions. Vous pouvez utiliser Core Tools pour générer des projets de fonction et des fonctions à partir de zéro dans votre langage souhaité.

Versions de Core Tools

Étant donné que Core Tools inclut le runtime Azure Functions, la version principale des outils de base que vous utilisez doit toujours correspondre à la version principale du runtime Functions dans Azure. Actuellement, la version 4.x est la version recommandée du runtime Functions et la seule version qui prend en charge toutes les langues. Bien que ce tutoriel traite et utilise Core Tools version 4.x, vous n’avez pas besoin d’installer quoi que ce soit sur votre propre ordinateur. Dans ce tutoriel, vous utilisez plutôt Core Tools dans un environnement Azure Cloud Shell dans votre navigateur. Cloud Shell dispose déjà des versions correctes de Core Tools, d’Azure CLI et de Node.js, ainsi qu’un éditeur de code déjà installé.

Développement local et développement dans le portail Azure

Bien que le portail Azure fournit un éditeur intégré pour votre code de fonction, vous ne pouvez l’utiliser que pour des piles de langage spécifiques. Vous ne pouvez pas également utiliser le portail pour modifier les fonctions que vous développez localement et déployez sur Azure. Lorsque vous commencez à utiliser n’importe quel workflow de développement local, vous ne pouvez pas utiliser le portail Azure pour apporter des modifications à votre code de fonction.

Core Tools prend en charge le développement local pour toutes les piles linguistiques prises en charge par Azure Functions.

Créer des fonctions localement

Voici un aperçu plus approfondi de la création de fonctions avec Core Tools et de leur exécution localement. Découvrez comment publier sur Azure plus loin dans ce didacticiel.

Création d’un projet de fonctions avec func init

Pour créer un projet de fonctions, exécutez func init à la ligne de commande.

Output from func init creating a JavaScript function project.

func init vous demande quel runtime de langage utiliser pour l’application. Il adapte correctement le contenu du dossier de projet.

Lorsque vous créez un projet de fonctions, les fichiers inclus dans le dossier du projet dépendent du runtime de langage que vous sélectionnez. Quel que soit le runtime que vous choisissez, les deux fichiers projet les plus critiques sont toujours présents :

  • host.json stocke les valeurs de configuration du runtime, notamment les options de journalisation, pour l’application de fonction. Les paramètres stockés dans ce fichier sont utilisés à la fois lorsque vous exécutez des fonctions localement et dans Azure.
  • local.settings.json stocke les valeurs de configuration qui s’appliquent uniquement à l’application de fonction lorsqu’elle s’exécute localement avec Core Tools. Ce fichier contient deux types de paramètres :
    • Paramètres du runtime local : permettent de configurer le runtime des fonctions locales lui-même.
    • Paramètres d’application personnalisés : vous les ajoutez et les configurez en fonction des besoins de votre application. Toutes les fonctions de l’application peuvent y accéder et les utiliser.

Les projets de fonctions générés par func init ne contiennent aucune fonction. Dans la section suivante, découvrez comment en ajouter.

Créer une fonction avec func new

Chaque fonction individuelle d’un projet nécessite du code et une configuration pour définir son comportement. L’exécution de func new dans un dossier de projet fonction crée une fonction et tous les fichiers dont vous avez besoin pour commencer le développement.

Output from func new creating a JavaScript function.

Après vous avoir demandé quel type de déclencheur de fonction vous souhaitez utiliser et quel nom vous souhaitez donner à votre fonction, func new génère une implémentation de départ complète et prête à être publiée dans le langage choisi pour votre projet de fonction. Le code de démarrage montre comment utiliser le type de déclencheur que vous avez sélectionné et est là pour vous aider à commencer rapidement. Remplacez le corps de la fonction par votre propre implémentation, et vous êtes prêt à générer, exécuter, tester et publier.

Dans la partie suivante de ce didacticiel, vous utilisez func new pour créer une fonction déclenchée par HTTP et modifier l’implémentation de démarrage pour effectuer un calcul d’intérêt simple.

Exécuter des fonctions localement

Les fonctions ne sont pas des programmes qui peuvent être exécutés par seuls. Elles doivent être hébergées. L’hôte Azure Functions est ce qui alimente tout ce qui se trouve en dehors de votre code de fonction : il charge la configuration, écoute les déclencheurs et les requêtes HTTP, démarre le processus de travail pour le langage dans lequel vos fonctions sont écrites, écrit la sortie du journal, etc. Dans Azure, les applications de fonction exécutent automatiquement l’hôte au démarrage.

Vous pouvez utiliser Core Tools pour exécuter votre propre instance de l’hôte Azure Functions et tester vos fonctions localement avant de les publier. En exécutant vos fonctions avant de les publier, vous pouvez non seulement vérifier que votre configuration et votre code se chargent correctement, mais aussi tester vos fonctions au moyen d’appels HTTP réels sans avoir besoin de ressources Azure.

Pour démarrer l’hôte de fonctions localement, exécutez func start à partir d’un dossier de projet de fonctions. À la fin de la sortie, Core Tools affiche les URL locales que vous pouvez utiliser pour appeler chacune de vos fonctions. Quand l’hôte s’exécute, vous pouvez utiliser un outil ou une bibliothèque qui effectue des appels HTTP, comme curl, pour interagir avec vos fonctions. Core Tools écrit toute sortie de journal produite par l’hôte dans le terminal en temps réel.

func start output showing a function invocation URL.