Introduction aux fonctions Azure dans Visual Studio pour Mac

Important

La mise hors service de Visual Studio pour Mac est prévue pour le 31 août 2024, conformément à la stratégie de cycle de vie moderne de Microsoft. Bien que vous puissiez continuer à travailler avec Visual Studio pour Mac, il existe plusieurs autres options pour les développeurs sur Mac, telles que la version préliminaire de la nouvelle extension C# Dev Kit pour VS Code.

En savoir plus sur les chronologies de support et les alternatives.

Azure Functions permet de créer et d’exécuter dans le cloud des extraits de code basés sur des événements (fonctions), sans devoir provisionner ni gérer explicitement l’infrastructure. Pour plus d’informations, consultez la documentation sur Azure Functions.

Configuration requise

Les outils Azure Functions sont inclus dans Visual Studio pour Mac 7.5 et ultérieur.

Pour créer et déployer des fonctions, vous devez également avoir un abonnement Azure. Si vous n’avez pas de compte Azure, vous pouvez vous inscrire aujourd’hui gratuitement et recevoir 12 mois de services populaires gratuits, un crédit gratuit de 200 USD et plus de 25 services toujours gratuits : >https://azure.com/free.

Création d’un premier projet Azure Functions

  1. Dans Visual Studio pour Mac, sélectionnez Fichier > Nouvelle solution.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez le modèle Azure Functions sous Cloud > Général, puis cliquez sur Suivant :

    New Project dialog showing Azure Functions option

  3. Sélectionnez le modèle Azure Functions initial à utiliser, entrez le nom de la fonction, puis cliquez sur Suivant.

    New Project dialog showing Azure Functions templates

    Astuce

    Même si le runtime et les modèles (CLI) d’Azure Functions en bundle sont conservés autant que possible à jour, ils deviennent inévitablement obsolètes. Quand vous créez un projet Functions, Visual Studio pour Mac recherche des mises à jour de l’interface CLI et vous avise, comme indiqué dans l’image suivante. Cliquez simplement sur le bouton pour télécharger les modèles mis à jour. New project dialog showing Azure Functions updates are available

    Selon le type de fonction que vous sélectionnez, la page suivante vous invite à saisir des informations, par exemple les droits d’accès, comme illustré dans l’image qui suit :

    New Project dialog showing additional option

    Pour plus d’informations sur les différents types de modèle Azure Functions et les propriétés de liaison nécessaires à la configuration de chaque modèle, consultez la section Modèles de fonctions disponibles. Pour cet exemple, nous utilisons un déclencheur HTTP auquel nous affectons des droits d’accès de type anonyme.

  4. Une fois les paramètres définis, choisissez l’emplacement du projet, puis cliquez sur Créer.

Visual Studio pour Mac crée un projet .NET Standard qui inclut une fonction par défaut. Il contient également des références NuGet à une variété de packages AzureWebJobs, ainsi qu’au package Newtonsoft.Json.

Visual Studio for Mac editor displaying a brand new Azure function from template

Le nouveau projet contient les fichiers suivants :

  • votre-nom-de-fonction.cs - cette classe contient du code réutilisable pour la fonction que vous avez sélectionnée. Elle contient un attribut FunctionName avec le nom de la fonction, ainsi qu’un attribut déclencheur, qui spécifie ce qui déclenche la fonction (par exemple, une requête HTTP). Pour plus d’informations sur la méthode de fonction, consultez l’article Informations de référence pour les développeurs C# sur Azure Functions.
  • host.json : ce fichier décrit les options de configuration globale pour l’hôte Functions. Pour obtenir un exemple de fichier et des informations sur les paramètres disponibles pour ce fichier, consultez Informations de référence sur le fichier host.json pour Azure Functions.
  • local.settings.json : ce fichier contient tous les paramètres nécessaires pour exécuter des fonctions localement. Ces paramètres sont utilisés par Azure Functions Core Tools. Pour plus d’informations, consultez Local settings file (Fichier de paramètres local) dans l’article Azure Functions Core Tools.

Une fois que vous avez créé votre projet Azure Functions dans Visual Studio pour Mac, vous pouvez tester la fonction déclenchée par HTTP par défaut à partir de votre ordinateur local.

Test de la fonction au niveau local

Dans la mesure où Visual Studio pour Mac prend en charge Azure Functions, vous pouvez tester et déboguer votre fonction sur un ordinateur de développement local.

  1. Pour tester localement votre fonction, appuyez sur le bouton Exécuter dans Visual Studio pour Mac :

    Start debugging button in Visual Studio for mac

  2. L’exécution du projet démarre le débogage local sur la fonction Azure et ouvre une nouvelle fenêtre de terminal, comme l’illustre l’image suivante :

    terminal window showing function output

    Copiez l’URL indiquée dans la sortie.

  3. Collez l’URL de la demande HTTP dans la barre d’adresses de votre navigateur. Ajoutez la chaîne de requête ?name=<yourname> à la fin de l’URL et exécutez la requête. L’image suivante montre la réponse dans le navigateur à la requête GET locale retournée par la fonction :

    HTTP request in browser

Ajout d’une autre fonction à votre projet

Les modèles de fonctions vous permettent de créer rapidement des fonctions à l’aide des déclencheurs et des modèles les plus courants. Pour créer un autre type de fonction, effectuez les étapes suivantes :

  1. Pour ajouter une nouvelle fonction, cliquez avec le bouton droit sur le nom du projet et sélectionnez Ajouter > Ajouter une fonction... :

    context action for adding new function

  2. Dans la boîte de dialogue Nouvelle fonction Azure, sélectionnez la fonction dont vous avez besoin :

    new Azure function dialog

    Une liste de modèles Azure Functions est fournie dans la section Modèles de fonctions disponibles.

Vous pouvez utiliser la procédure ci-dessus pour ajouter des fonctions à votre projet d’application de fonction. Chaque fonction dans le projet peut avoir un déclencheur différent, mais une fonction ne doit avoir qu’un seul déclencheur. Pour plus d’informations, consultez Concepts des déclencheurs et liaisons Azure Functions.

Publication dans Azure

  1. Cliquez avec le bouton droit sur le nom du projet et sélectionnez Publier > Publier sur Azure : Context menu with Publish > Publish to Azure... option highlighted

  2. Si vous avez déjà connecté votre compte Azure à Visual Studio pour Mac, une liste des services d’application disponibles s’affiche. Si vous ne vous êtes pas connecté, vous êtes invité à le faire.

  3. Dans la boîte de dialogue Publier sur Azure App Service, sélectionnez un service d’application existant, ou créez un service en cliquant sur Nouveau.

  4. Dans la boîte de dialogue Créer un App Service, entrez vos paramètres : New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    Paramètre Description
    Nom de l’App Service Nom globalement unique qui identifie votre nouvelle application de fonction.
    Abonnement Sélectionnez l’abonnement Azure à utiliser.
    Groupe de ressources Nom du groupe de ressources où créer votre application de fonction. Choisissez + pour créer un groupe de ressources.
    Plan de service Choisissez un plan existant, ou créez un plan personnalisé. Choisissez un emplacement dans une région proche de chez vous, ou proche d’autres services auxquels vos fonctions ont accès.
  5. Cliquez sur Suivant pour créer un compte de stockage. Le runtime Functions exige un compte Stockage Azure. Cliquez sur Personnalisé pour créer un compte de stockage à usage général, ou utilisez un compte existant :

    New App Service dialog with prompt for storage account name.

  6. Cliquez sur Créer pour créer une application de fonctions et les ressources associées dans Azure avec ces paramètres et déployer votre code de projet de fonction.

  7. Durant la publication, une boîte de dialogue vous invite éventuellement à « Mettre à jour la version de Functions sur Azure ». Cliquez sur Oui :

    Prompt asking to

Paramètres Function App

Les paramètres que vous avez ajoutés au fichier local.settings.json doivent être également ajoutés à l’application de fonction dans Azure. Ces paramètres ne sont pas chargés automatiquement quand vous publiez le projet.

Pour accéder à vos paramètres d’application, accédez au portail Azure sur https://ms.portal.azure.com/. Sous Function Apps, sélectionnez Function Apps, puis sélectionnez le nom de votre fonction :

Azure Functions menu

Sous l’onglet Vue d’ensemble, sélectionnez Paramètres de l’application sous Fonctionnalités configurées :

Over tab of Azure function

À partir de cet emplacement, vous pouvez définir les paramètres d’application de l’application de fonction. Vous pouvez ensuite ajouter de nouveaux paramètres d’application ou modifier ceux qui existent déjà :

application settings area of Azure portal

Vous pouvez être amené à définir un paramètre important : FUNCTIONS_EXTENSION_VERSION. Quand vous publiez à partir de Visual Studio pour Mac, cette valeur doit correspondre à beta.

Modèles de fonctions disponibles

  • GitHub Trigger : répond aux événements qui se produisent dans vos dépôts GitHub. Pour plus d’informations, consultez l’article Azure Functions sur GitHub.

    • GitHub commenter : cette fonction est exécutée quand elle reçoit un webhook GitHub pour un problème ou une demande de tirage (pull request), et ajoute un commentaire.
    • WebHook GitHub - Cette fonction est exécutée quand elle reçoit un Webhook GitHub.
  • HTTP : déclenche l’exécution du code à l’aide d’une requête HTTP. Des modèles explicites sont disponibles pour les déclencheurs HTTP suivants :

    • Déclencheur HTTP
    • HTTP GET créer, mettre à jour, lire et supprimer (CRUD)
    • HTTP POST CRUD
    • Déclencheur HTTP avec paramètres
  • Timer : exécute le nettoyage ou d’autres tâches de traitement par lots selon une planification prédéfinie. Ce modèle accepte deux champs : un nom et une planification (expression CRON de six champs). Pour plus d’informations, consultez l’article Azure Functions sur les minuteurs

  • Queue Trigger : cette fonction répond aux messages à mesure qu’ils arrivent dans le Stockage File d'attente Azure. En plus du nom de fonction, ce modèle accepte un chemin (nom de la file d’attente à partir de laquelle le message est lu) et une connexion de compte de stockage (nom du paramètre d’application contenant votre chaîne de connexion de compte de stockage). Pour plus d’informations, consultez l’article Azure Functions sur le Stockage File d’attente.

  • Blob Trigger : traite les objets blob Stockage Azure quand ils sont ajoutés à un conteneur. En plus du nom de fonction, ce modèle accepte des propriétés de chemin et de connexion. La propriété de chemin correspond au chemin dans le compte de stockage surveillé par le déclencheur. Le compte de connexion correspond au nom du paramètre d’application contenant votre chaîne de connexion de compte de stockage. Pour plus d’informations, consultez l’article Azure Functions sur le Stockage Blob.

  • Generic WebHook : cette fonction simple s’exécute chaque fois qu’elle reçoit une demande d’un service prenant en charge les webhooks. Pour plus d’informations, consultez l’article Azure Functions sur les webhooks génériques.

  • Durable functions orchestration : les fonctions durables vous permettent 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. Pour plus d’informations, consultez les guides sur les Fonctions durables.

  • Image Resizer : cette fonction crée des images redimensionnées chaque fois qu’un objet blob est ajouté à un conteneur. Le modèle accepte un chemin et une chaîne de connexion pour le déclencheur, une petite image de sortie et une moyenne image de sortie.

  • SAS token : cette fonction génère un jeton SAP pour un conteneur Stockage Azure et un nom d’objet blob spécifiés. En plus du nom de fonction, ce modèle accepte des propriétés de chemin et de connexion. La propriété de chemin correspond au chemin dans le compte de stockage surveillé par le déclencheur. Le compte de connexion correspond au nom du paramètre d’application contenant votre chaîne de connexion de compte de stockage. Vous devez également définir des droits d’accès. Le niveau d’autorisation contrôle si la fonction nécessite une clé d’API et la clé à utiliser. La fonction utilise une clé de fonction et l’administrateur utilise votre clé d’accès de compte. Pour plus d’informations, consultez l’exemple de fonction Azure C# pour générer des jetons SAP.