Introduction à Azure FunctionsIntroduction to Azure Functions

Azure Functions est un moyen de créer et d’exécuter des extraits de code pilotés par des événements (fonctions) dans le Cloud, sans avoir à configurer ou gérer explicitement l’infrastructure.Azure Functions is a way to create and run event-driven snippets of code –– functions –– in the cloud, without having to explicitly provision or manage infrastructure. Pour plus d’informations, consultez la documentation sur Azure Functions.For more information about Azure Functions, see the Azure Functions documentation.

SpécificationsRequirements

Les outils Azure Functions sont inclus dans Visual Studio pour Mac 7.5 et ultérieur.Azure Function tools are included in Visual Studio for Mac 7.5 and newer.

Pour créer et déployer des fonctions, vous avez également besoin d’un abonnement Azure.To create and deploy functions you also need an Azure subscription. Si vous n’avez pas de compte Azure, vous pouvez vous inscrire dès aujourd’hui gratuitement et recevoir 12 mois de services populaires gratuits, un crédit gratuit de $200 et 25 services gratuits gratuits-> https://azure.com/free .If you don't have an Azure account, you can sign up today for free and receive 12 months of free popular services, $200 free credit and 25+ always free services -> https://azure.com/free.

Création d’un premier projet Azure FunctionsCreating your first Azure Functions project

  1. Dans Visual Studio pour Mac, sélectionnez fichier > nouvelle solution.In Visual Studio for Mac, select File > New 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 :From the New Project dialog, select the Azure Functions template under Cloud > General and click Next :

    Boîte de dialogue Nouveau projet avec l’option Azure Functions

  3. Sélectionnez le modèle Azure Functions initial à utiliser, entrez le nom de la fonction, puis cliquez sur Suivant.Select the initial Azure Functions template that you wish to use, enter your function name and click Next.

    Boîte de dialogue Nouveau projet présentant les modèles de Azure Functions

    Conseil

    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.While the bundled Azure Functions runtime and templates (CLI) are kept as to date as possible, they inevitably get outdated. 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 ci-dessous.When creating a new Functions project, Visual Studio for Mac will check for updates to the CLI and will notify you as shown in the image below. Cliquez simplement sur le bouton pour télécharger les modèles mis à jour.Simply click on the button to download the updated templates. Boîte de dialogue Nouveau projet qui indique Azure Functions mises à jour sont disponiblesNew 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 :Depending on the type of function you select, the next page will prompt you to enter details, such as access rights, as illustrated in the following image:

    Boîte de dialogue Nouveau projet montrant une option supplémentaire

    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.For more information on the different types of Azure Functions templates and the binding properties required to configure each template, see the Available function templates section. Pour cet exemple, nous utilisons un déclencheur HTTP auquel nous affectons des droits d’accès de type anonyme.For this example, we're using a Http trigger with access rights set to anonymous.

  4. Une fois les paramètres définis, choisissez l’emplacement du projet, puis cliquez sur Créer.Once you've set the parameters, choose the location for the project and click Create.

Visual Studio pour Mac crée un projet .NET Standard qui inclut une fonction par défaut.Visual Studio for Mac creates a .NET Standard project with a default function included. Il contient également des références NuGet à une variété de packages AzureWebJobs , ainsi qu’au package Newtonsoft.Json.It also includes NuGet references to a variety of AzureWebJobs packages, as well as the Newtonsoft.Json package.

Éditeur Visual Studio pour Mac montrant une toute nouvelle fonction Azure à partir d’un modèle

Le nouveau projet contient les fichiers suivants :The new project contains the following files:

  • votre-nom-de-fonction.cs  - cette classe contient du code réutilisable pour la fonction que vous avez sélectionnée.your-function-name.cs – This class contains boilerplate code for the function that you selected. 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 exempleIt contains a FunctionName attribute with the function name, and a trigger attribute that specifies what triggers the function (eg. une requête HTTP).a HTTP request). 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.For more information on the function method, refer to the Azure Functions C# developer reference article.
  • host.json : ce fichier décrit les options de configuration globale pour l’hôte Functions.host.json – This file describes the global configuration options for Functions host. 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.For an example file and information on the available settings for this file, see the host.json reference for Azure Functions.
  • local.settings.json : ce fichier contient tous les paramètres nécessaires pour exécuter des fonctions localement.local.settings.json – This file contains all the settings for running functions locally. Ces paramètres sont utilisés par Azure Functions Core Tools.These settings are used by the Azure Functions Core Tools. Pour plus d’informations, consultez Local settings file (Fichier de paramètres local) dans l’article Azure Functions Core Tools.For more information, see Local settings file in the Azure Functions Core Tools article.

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.Now that you've created a new Azure Functions project in Visual Studio for Mac, you can test out the default HTTP-triggered function from your local machine.

Test de la fonction au niveau localTesting the function locally

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.With Azure Functions support in Visual Studio for Mac you can test and debug your function on your local development computer.

  1. Pour tester localement votre fonction, appuyez sur le bouton Exécuter dans Visual Studio pour Mac :To test your function locally, press the Run button in Visual Studio for Mac:

    Bouton de démarrage du débogage dans Visual Studio pour 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 :Running the project starts local debugging on the Azure Function and opens a new Terminal window, as illustrated in the following image:

    Fenêtre de terminal montrant la sortie de la fonction

    Copiez l’URL de la sortie.Copy the URL from the output.

  3. Collez l’URL de la demande HTTP dans la barre d’adresses de votre navigateur.Paste the URL for the HTTP request into your browser's address bar. Ajoutez la chaîne de requête ?name=<yourname> à la fin de l’URL et exécutez la requête.Add the query string ?name=<yourname> to the end of the URL and execute the request. L’image suivante montre la réponse dans le navigateur à la requête GET locale retournée par la fonction :The following image shows the response in the browser to the local GET request returned by the function:

    Requête HTTP dans le navigateur

Ajout d’une autre fonction à votre projetAdding another function to your project

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.Function Templates enable you to quickly create new functions using the most common triggers and templates. Pour créer un autre type de fonction, effectuez les étapes suivantes :To create another type of function, do the following:

  1. Pour ajouter une nouvelle fonction, cliquez avec le bouton droit sur le nom du projet et sélectionnez Ajouter > Ajouter une fonction :To add a new function, right-click on the project name and select Add > Add Function... :

    Action de contexte permettant d’ajouter une nouvelle fonction

  2. Dans la boîte de dialogue Nouvelle fonction Azure , sélectionnez la fonction dont vous avez besoin :From the New Azure Function dialog, select the function you require:

    Boîte de dialogue Nouvelle fonction Azure

    Une liste de modèles Azure Functions est fournie dans la section Modèles de fonctions disponibles.A list of the Azure Function templates are provided in the Available function templates section.

Vous pouvez utiliser la procédure ci-dessus pour ajouter des fonctions à votre projet d’application de fonction.You can use the above procedure to add more functions to your function app project. Chaque fonction dans le projet peut avoir un déclencheur différent, mais une fonction ne doit avoir qu’un seul déclencheur.Each function in the project can have a different trigger, but a function must have exactly one trigger. Pour plus d’informations, consultez Concepts des déclencheurs et liaisons Azure Functions.For more information, see Azure Functions triggers and bindings concepts.

Publication dans AzurePublish to Azure

  1. Cliquez avec le bouton droit sur le nom du projet et sélectionnez publier > publier sur Azure :  menu contextuel avec publier > publier sur Azure... option mise en surbrillanceRight-click on the project name and select Publish > Publish to 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.If you've already connected your Azure account to Visual Studio for Mac a list of available app services are displayed. Si vous ne vous êtes pas connecté, vous êtes invité à le faire.If you haven't logged in, you'll be prompted to do so.

  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.From the Publish to Azure App Service dialog, you can either select an existing app service or create a new one by clicking New.

  4. Dans la boîte de dialogue créer un app service , entrez vos paramètres :  boîte de dialogue Nouveau App service, avec les champs nom du service, abonnement, groupe de ressources et plan de service.In the Create new App Service dialog, enter your settings: New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    ParamètreSetting DescriptionDescription
    Nom de l’App ServiceApp Service Name Nom global unique qui identifie votre nouvelle application de fonction.A globally unique name that identifies your new function app.
    AbonnementSubscription Sélectionnez l’abonnement Azure à utiliser.The Azure subscription to use.
    Groupe de ressourcesResource Group Nom du groupe de ressources où créer votre application de fonction.Name of the resource group in which to create your function app. Choisissez + de créer un nouveau groupe de ressources.Choose + to create a new resource group.
    Plan de serviceService Plan Choisissez un plan existant, ou créez un plan personnalisé.Choose an existing plan or create a custom plan. Choisissez un emplacement dans une région proche de chez vous, ou proche d’autres services auxquels vos fonctions ont accès.Choose a Location in a region near you or near other services your functions access.
  5. Cliquez sur Suivant pour créer un compte de stockage.Click Next to create a storage account. Un compte de stockage Azure est obligatoire par le runtime Functions.An Azure storage account is required by the Functions runtime. Cliquez sur Personnalisé pour créer un compte de stockage à usage général, ou utilisez un compte existant :Click Custom to create a general purpose storage account, or use an existing one:

    Boîte de dialogue Nouveau App Service avec l’invite de nom du compte de stockage.

  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.Click Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  7. Durant la publication, une boîte de dialogue vous invite éventuellement à « Mettre à jour la version de Functions sur Azure ».You may be prompted with a dialog during publishing informing you to "Update Functions Version on Azure". Cliquez sur Oui :Click Yes :

    Vous êtes invité à « mettre à jour les paramètres d’application Azure pour qu’ils correspondent à la version des fonctions locales ? »

Paramètres Function AppFunction app settings

Les paramètres que vous avez ajoutés au fichier local.settings.json doivent être également ajoutés à l’application de fonction dans Azure.Any settings you added in the local.settings.json must be also added to the function app in Azure. Ces paramètres ne sont pas chargés automatiquement quand vous publiez le projet.These settings are not uploaded automatically when you publish the project.

Pour accéder aux paramètres de votre application, accédez au Portail Azure à l’adresse https://ms.portal.azure.com/ .To access your app settings, go to the Azure portal at https://ms.portal.azure.com/. Sous Function Apps , sélectionnez Function Apps , puis sélectionnez le nom de votre fonction :Under Functions Apps , select Function Apps and highlight your function name:

menu Azure Functions

Sous l’onglet Vue d’ensemble , sélectionnez Paramètres de l’application sous Fonctionnalités configurées  :From the Overview tab select Application settings under Configured features :

Onglet Vue d’ensemble d’Azure Functions

À 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à :From here you can set Application Settings for the function app, where you can add new application settings or modify existing ones:

zone des paramètres d’application du portail Azure

Vous pouvez être amené à définir un paramètre important : FUNCTIONS_EXTENSION_VERSION.One important setting you may need to set is FUNCTIONS_EXTENSION_VERSION. Quand vous publiez à partir de Visual Studio pour Mac, cette valeur doit correspondre à beta.When publishing from Visual Studio for Mac, this value should be set to beta.

Modèles de fonctions disponiblesAvailable function templates

  • GitHub Trigger : répond aux événements qui se produisent dans vos dépôts GitHub.GitHub Trigger – Respond to events that occur in your GitHub repositories. Pour plus d’informations, consultez l’article Azure Functions sur GitHub.For more information, see the Azure Functions article on 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.GitHub commenter – This function will be run when it receives a GitHub webhook for an issue or pull request and adds a comment.
    • WebHook GitHub - Cette fonction est exécutée quand elle reçoit un Webhook GitHub.GitHub WebHook – This function will be run when it receives a GitHub webhook.
  • HTTP : déclenche l’exécution du code à l’aide d’une requête HTTP.HTTP – Trigger the execution of your code by using an HTTP request. Des modèles explicites sont disponibles pour les déclencheurs HTTP suivants :There are explicit templates for the following HTTP triggers:

    • Http TriggerHttp Trigger
    • Http GET CRUDHttp GET CRUD
    • Http POST CRUDHttp POST CRUD
    • Http Trigger with parametersHttp Trigger with parameters
  • Timer : exécute le nettoyage ou d’autres tâches de traitement par lots selon une planification prédéfinie.Timer – Execute cleanup or other batch tasks on a predefined schedule. Ce modèle accepte deux champs : un nom et une planification (expression CRON de six champs).This template takes two fields: a Name and a schedule, which is a six field CRON expression. Pour plus d’informations, consultez l' article Azure Functions à l’heureFor more information, see the Azure Functions article on Time

  • Queue Trigger : cette fonction répond aux messages à mesure qu’ils arrivent dans la file d’attente Stockage Azure.Queue Trigger – This is a function that will respond to messages as they arrive in the Azure Storage queue. 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).In addition to the function name, this template takes a Path (the name of the queue from which the message will be read) and storage account Connection (the name of the app setting containing your storage account connection string). Pour plus d’informations, consultez l' article Azure Functions sur le stockage de files d’attente.For more information, see the Azure Functions article on Queue Storage.

  • Blob Trigger : traite les objets blob Stockage Azure quand ils sont ajoutés à un conteneur.Blob Trigger – Process Azure Storage blobs when they are added to a container. En plus du nom de fonction, ce modèle accepte des propriétés de chemin et de connexion.In addition to the function name, this template also takes a path and connection property. La propriété de chemin correspond au chemin dans le compte de stockage surveillé par le déclencheur.The path property is the path within your storage account that the trigger will monitor. Le compte de connexion correspond au nom du paramètre d’application contenant votre chaîne de connexion de compte de stockage.The connection account is the name of the app setting containing your storage account connection string. Pour plus d’informations, consultez l' article Azure Functions BLOB Storage.For more information, see the Azure Functions Blob Storage article.

  • Generic WebHook : cette fonction simple s’exécute chaque fois qu’elle reçoit une demande d’un service prenant en charge les webhooks.Generic WebHook – This is a simple function that will run whenever it receives a request from any service that supports webhooks. Pour plus d’informations, consultez l' article Azure Functions sur les webhooks génériques.For more information, see the Azure Functions article on generic webhooks.

  • Durable functions orchestration : les fonctions durables vous permettent d’écrire des fonctions avec état dans un environnement serverless.Durable functions orchestration – Durable Functions let you write stateful functions in a serverless environment. L’extension gère l’état, les points de contrôle et les redémarrages à votre place.The extension manages state, checkpoints, and restarts for you. Pour plus d’informations, consultez les guides Azure Functions sur fonctions durables.For more information, see the Azure Functions guides on Durable functions.

  • Image Resizer : cette fonction crée des images redimensionnées chaque fois qu’un objet blob est ajouté à un conteneur.Image Resizer – This function creates resized images whenever a blob is added to a container. 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.The template takes path and connection string for the trigger, a small image output, and a medium image output.

  • SAS token : cette fonction génère un jeton SAP pour un conteneur Stockage Azure et un nom d’objet blob spécifiés.SAS token – This function generates a SAS token for a given Azure Storage container and blob name. En plus du nom de fonction, ce modèle accepte des propriétés de chemin et de connexion.In addition to the function name, this template also takes a path and connection property. La propriété de chemin correspond au chemin dans le compte de stockage surveillé par le déclencheur.The path property is the path within your storage account that the trigger will monitor. Le compte de connexion correspond au nom du paramètre d’application contenant votre chaîne de connexion de compte de stockage.The connection account is the name of the app setting containing your storage account connection string. Vous devez également définir des droits d’accès.The Access rights also need to be set. Le niveau d’autorisation contrôle si la fonction requiert une clé API et la clé à utiliser ; La fonction utilise une touche de fonction ; L’administrateur utilise votre clé d’accès au compte.Authorization level controls whether the function requires an API key and which key to use; Function uses a function key; Admin uses your account access key. Pour plus d’informations, consultez l’exemple de fonction Azure C# pour générer des jetons SAP.For more information, see the C# Azure Function for generating SAS tokens sample.