Développer Azure Functions à l’aide de Visual StudioDevelop Azure Functions using Visual Studio

Visual Studio vous permet de développer, de tester et de déployer des fonctions de bibliothèque de classes C# dans Azure.Visual Studio lets you develop, test, and deploy C# class library functions to Azure. S’il s’agit de votre première expérience avec Azure Functions, vous pouvez en apprendre davantage dans l’article Présentation d’Azure Functions.If this experience is your first with Azure Functions, you can learn more at An introduction to Azure Functions.

Visual Studio offre les avantages suivants lorsque vous développez vos fonctions :Visual Studio provides the following benefits when develop your functions:

  • Modifier, générer et exécuter des fonctions sur votre ordinateur de développement local.Edit, build, and run functions on your local development computer.
  • Publiez votre projet Azure Functions directement dans Azure et créez des ressources Azure, si besoin.Publish your Azure Functions project directly to Azure, and create Azure resources as needed.
  • Utilisez des attributs C# pour déclarer des liaisons de fonction directement dans le code C#.Use C# attributes to declare function bindings directly in the C# code.
  • Développer et déployer des fonctions précompilées C#.Develop and deploy pre-compiled C# functions. Les fonctions précompilées offrent de meilleures performances de démarrage à froid que les fonctions basées sur un script C#.Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Coder vos fonctions en C# tout en bénéficiant de tous les avantages du développement Visual Studio.Code your functions in C# while having all of the benefits of Visual Studio development.

Cet article fournit des informations sur l'utilisation de Visual Studio pour développer des fonctions de bibliothèque de classe C# et les publier dans Azure.This article provides details about how to use Visual Studio to develop C# class library functions and publish them to Azure. Avant de lire cet article, lisez le Démarrage rapide de Functions pour Visual Studio.Before you read this article, you should complete the Functions quickstart for Visual Studio.

Sauf indication contraire, les procédures et exemples présentés correspondent à Visual Studio 2019.Unless otherwise noted, procedures and examples shown are for Visual Studio 2019.

Conditions préalables requisesPrerequisites

Azure Functions Tools est inclus dans la charge de travail de développement Azure de Visual Studio, à partir de Visual Studio 2017.Azure Functions Tools is included in the Azure development workload of Visual Studio starting with Visual Studio 2017. Veillez à inclure la charge de travail de développement Azure lorsque vous installez Visual Studio.Make sure you include the Azure development workload in your Visual Studio installation.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Les autres ressources dont vous avez besoin, tel qu’un compte de stockage Azure, sont créées dans votre abonnement au cours du processus de publication.Other resources that you need, such as an Azure Storage account, are created in your subscription during the publishing process.

Notes

Dans Visual Studio 2017, la charge de travail de développement Azure installe Azure Functions Tools en tant qu’extension distincte.In Visual Studio 2017, the Azure development workload installs the Azure Functions Tools as a separate extension. Lorsque vous mettez à jour Visual Studio 2017, vérifiez également que vous utilisez la dernière version d’Azure Functions Tools.When you update your Visual Studio 2017, also make sure that you are using the most recent version of the Azure Functions tools. Les sections suivantes vous montrent comment vérifier et (si besoin) mettre à jour votre extension Azure Functions Tools dans Visual Studio 2017.The following sections show you how to check and (if needed) update your Azure Functions Tools extension in Visual Studio 2017.

Veuillez passer cette section si vous utilisez Visual Studio 2019.Please skip these section when using Visual Studio 2019.

Vérifier la version de vos outils dans Visual Studio 2017Check your tools version in Visual Studio 2017

  1. Dans le menu Outils, choisissez Extensions et mises à jour.From the Tools menu, choose Extensions and Updates. Développez Installé > Outils et choisissez Outils Azure Functions et Web Jobs.Expand Installed > Tools and choose Azure Functions and Web Jobs Tools.

    Vérifier la version des outils Functions

  2. Notez la Version installée.Note the installed Version. Vous pouvez comparer cette version avec la dernière, indiquée dans les notes de publication.You can compare this version with the latest version listed in the release notes.

  3. Si votre version est antérieure, mettez à jour vos outils dans Visual Studio en suivant les instructions de la section suivante.If your version is older, update your tools in Visual Studio as shown in the following section.

Mettre à jour vos outils dans Visual Studio 2017Update your tools in Visual Studio 2017

  1. Dans la boîte de dialogue Extensions et mises à jour, développez Mises à jour > Visual Studio Marketplace, choisissez Outils Azure Functions et Web Jobs et sélectionnez Mettre à jour.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Mettre à jour la version des outils Functions

  2. Une fois la mise à jour des outils téléchargée, fermez Visual Studio pour déclencher la mise à jour des outils à l’aide du programme d’installation VSIX.After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. Dans le programme d’installation, choisissez OK pour démarrer, puis Modifier pour mettre à jour les outils.In the installer, choose OK to start and then Modify to update the tools.

  4. Une fois la mise à jour terminée, choisissez Fermer et redémarrez Visual Studio.After the update is complete, choose Close and restart Visual Studio.

Notes

Dans Visual Studio 2019 ou version ultérieure, l’extension Azure Functions Tools est mise à jour avec Visual Studio.In Visual Studio 2019 and later, the Azure Functions tools extension is updated as part of Visual Studio.

Créer un projet Azure FunctionsCreate an Azure Functions project

Le modèle de projet Azure Functions dans Visual Studio crée un projet qui peut être publié dans une application de fonction dans Azure.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Vous pouvez utiliser une application de fonction pour regrouper des fonctions en une unité logique afin de faciliter la gestion, le déploiement, la mise à l’échelle et le partage des ressources.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. Dans Visual Studio, dans le menu Fichier, sélectionnez Nouveau > Projet.In Visual Studio, on the File menu, select New > Project.

  2. Dans la boîte de dialogue Créer un projet, recherchez functions, choisissez le modèle Azure Functions, puis sélectionnez Suivant.In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. Entrez un nom pour votre projet, puis sélectionnez Créer.Enter a name for your project, and select Create. Le nom d’application de la fonction doit être valide en tant qu’espace de noms C#, afin de ne pas utiliser des traits d’union, des traits de soulignement ou d’autres caractères non alphanumériques.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Dans Créer une application Azure Functions, utilisez les options suivantes :In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core)Azure Functions v2 (.NET Core)
    • Déclencheur HTTPHTTP trigger
    • Compte de stockage : Émulateur de stockageStorage Account: Storage Emulator
    • Niveau d’autorisation : AnonymeAuthorization level: Anonymous
    OptionOption Valeur suggéréeSuggested value DescriptionDescription
    Runtime FunctionsFunctions runtime Azure Functions 2.x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    Ce paramètre crée un projet de fonction qui utilise le runtime d’Azure Functions version 2.x qui prend en charge .NET Core.This setting creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. La version 1.x d’Azure Functions prend en charge .NET Framework.Azure Functions 1.x supports the .NET Framework. Pour plus d’informations, consultez Cibler la version du runtime Azure Functions.For more information, see Target Azure Functions runtime version.
    Modèle de fonctionFunction template Déclencheur HTTPHTTP trigger Ce paramètre crée une fonction déclenchée par une demande HTTP.This setting creates a function triggered by an HTTP request.
    Compte de stockageStorage Account Émulateur de stockageStorage Emulator Un déclencheur HTTP n’utilise pas la connexion de compte de stockage Azure.An HTTP trigger doesn't use the Azure Storage account connection. Tous les autres types de déclencheurs nécessitent une chaîne de connexion de compte de stockage valide.All other trigger types require a valid Storage account connection string. Étant donné que Functions requiert un compte de stockage, celui-ci est attribué ou créé lorsque vous publiez votre projet sur Azure.Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    Niveau d’autorisationAuthorization level AnonymeAnonymous La fonction créée peut être déclenchée par n’importe quel client sans fournir une clé.The created function can be triggered by any client without providing a key. Ce paramètre d’autorisation facilite le test de votre nouvelle fonction.This authorization setting makes it easy to test your new function. Pour plus d’informations sur les clés et autorisations, consultez Clés d’autorisation dans HTTP et liaisons de webhook.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Notes

    Veillez à définir le Niveau d’autorisation sur Anonymous.Make sure you set the Authorization level to Anonymous. Si vous choisissez le niveau par défaut de Function, vous êtes invité à présenter la clé de fonction dans les demandes d’accès à votre point de terminaison de fonction.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. Sélectionnez Créer pour créer le projet de fonction et la fonction déclenchée par HTTP.Select Create to create the function project and HTTP-triggered function.

Le modèle de projet crée un projet C#, installe le package NuGet Microsoft.NET.Sdk.Functions et définit le framework cible.The project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. Le nouveau projet comporte les fichiers suivants :The new project has the following files:

  • host.json : vous permet de configurer l’hôte Functions.host.json: Lets you configure the Functions host. Ces paramètres s’appliquent lors de l’exécution en local et dans Azure.These settings apply both when running locally and in Azure. Pour plus d’informations, consultez l’article de référence sur host.json.For more information, see host.json reference.

  • local.settings.json : tient à jour les paramètres utilisés lors de l’exécution locale des fonctions.local.settings.json: Maintains settings used when running functions locally. Ces paramètres ne sont pas utilisés lors de l’exécution dans Azure.These settings aren't used when running in Azure. Pour en savoir plus, voir Fichier de paramètres locaux.For more information, see Local settings file.

    Important

    Étant donné que le fichier local.settings.json peut contenir des secrets, vous devez l’exclure du contrôle de code source du projet.Because the local.settings.json file can contain secrets, you must excluded it from your project source control. Le paramètre Copier dans le répertoire de sortie de ce fichier doit toujours être Copier si plus récent.The Copy to Output Directory setting for this file should always be Copy if newer.

Pour plus d’informations, consultez Projet de bibliothèque de classes Azure Functions.For more information, see Functions class library project.

Fichier de paramètres locauxLocal settings file

Le fichier local.settings.json stocke des paramètres d’application, des chaînes de connexion et des paramètres utilisés par des outils de développement locaux.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Les paramètres dans le fichier local.settings.json sont uniquement utilisés lorsque vous exécuter les projets localement.Settings in the local.settings.json file are used only when you're running projects locally. Le fichier de paramètres locaux possède la structure suivante :The local settings file has this structure:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

Ces paramètres sont pris en charge lorsque vous exécutez des projets localement :These settings are supported when you run projects locally:

ParamètreSetting DescriptionDescription
IsEncrypted Lorsque ce paramètre est défini sur true, toutes les valeurs sont chiffrées à l’aide d’une clé d’ordinateur local.When this setting is set to true, all values are encrypted with a local machine key. Utilisé avec les commandes func settings.Used with func settings commands. La valeur par défaut est false.Default value is false.
Values Tableau des paramètres d’application et des chaînes de connexion utilisés lors de l’exécution locale d’un projet.Array of application settings and connection strings used when a project is running locally. Ces paires clé-valeur (chaîne-chaîne) correspondent aux paramètres d’application dans votre Function App dans Azure, tels que AzureWebJobsStorage.These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Plusieurs déclencheurs et liaisons ont une propriété qui fait référence à un paramètre d’application de chaîne de connexion, par exemple Connection pour le déclencheur de stockage blob.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. Pour ces propriétés, vous avez besoin d’un paramètre d’application défini dans le tableau Values.For these properties, you need an application setting defined in the Values array.
AzureWebJobsStorage est un paramètre d’application requis pour les déclencheurs autres que HTTP.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
Les versions 2.x et ultérieures du runtime Functions nécessitent le paramètre [FUNCTIONS_WORKER_RUNTIME], qui est généré pour votre projet par Core Tools.Version 2.x and higher of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
Lorsque vous installez l’émulateur de stockage Azure localement et définissez AzureWebJobsStorage sur UseDevelopmentStorage=true, et Core Tools utilise l’émulateur.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. L’émulateur est utile lors du développement, mais vous devez le tester avec une connexion de stockage réelle avant le déploiement.The emulator is useful during development, but you should test with an actual storage connection before deployment.
Les valeurs doivent être des chaînes et non des objets JSON ou des tableaux.Values must be strings and not JSON objects or arrays. Les noms de paramètres ne peuvent pas contenir le signe deux points (:) ou un trait de soulignement double (__).Setting names can't include a colon (:) or a double underline (__). Ces caractères sont réservés par le runtime.These characters are reserved by the runtime.
Host Les paramètres de cette section personnalisent le processus hôte Functions lorsque vous exécutez localement des projets.Settings in this section customize the Functions host process when you run projects locally. Ces paramètres sont séparés des paramètres host.json, qui s’appliquent également lorsque vous exécutez localement des projets dans Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Définit le port par défaut utilisé lors de l’exécution de l’hôte Functions local (func host start et func run).Sets the default port used when running the local Functions host (func host start and func run). --portL’option de ligne de commande est prioritaire sur ce paramètre.The --port command-line option takes precedence over this setting.
CORS Définit les origines autorisées pour cross-origin resource sharing (CORS).Defines the origins allowed for cross-origin resource sharing (CORS). Les origines sont fournies sous la forme d’une liste séparée par des virgules, sans espaces.Origins are supplied as a comma-separated list with no spaces. La valeur de caractère générique (*) est prise en charge, ce qui autorise les demandes à partir de toute origine.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Lorsque qu’il est défini sur true, autorise withCredentials les requêtes.When set to true, allows withCredentials requests.
ConnectionStrings Une collection.A collection. N’utilisez pas cette collection pour les chaînes de connexion utilisées par vos liaisons de fonction.Don't use this collection for the connection strings used by your function bindings. Cette collection est utilisée seulement par les infrastructures qui obtiennent généralement les chaînes de connexion à partir de la ConnectionStringssection d’un fichier de configuration, comme Entity Framework.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. Les chaînes de connexion dans cet objet sont ajoutées à l’environnement avec le type de fournisseur System.Data.SqlClient.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Les éléments de cette collection ne sont pas publiés sur Azure avec d’autres paramètres d’application.Items in this collection aren't published to Azure with other app settings. Vous devez explicitement ajouter ces valeurs à la collection Connection strings des paramètres de Function App.You must explicitly add these values to the Connection strings collection of your function app settings. Si vous créez un SqlConnection dans votre code de fonction, vous devez stocker la valeur de la chaîne de connexion et vos autres connexions dans Paramètres d’application dans le portail.If you're creating a SqlConnection in your function code, you should store the connection string value with your other connections in Application Settings in the portal.

Les paramètres du fichier local.settings.json ne sont pas chargés automatiquement lorsque vous publiez le projet.Settings in local.settings.json aren't uploaded automatically when you publish the project. Pour vous assurer que ces paramètres existent également dans votre Function App dans Azure, vous devez les charger après avoir publié votre projet.To make sure that these settings also exist in your function app in Azure, you must upload them after you publish your project. Pour en savoir plus, voir Paramètres Function App.To learn more, see Function app settings.

Les valeurs dans ConnectionStrings ne sont jamais publiées.Values in ConnectionStrings are never published.

Ces valeurs de paramètres d’application de fonction peuvent aussi être lues dans votre code en tant que variables d’environnement.The function app settings values can also be read in your code as environment variables. Pour en savoir plus, voir Variables d’environnement.For more information, see Environment variables.

Configurer le projet pour un développement localConfigure the project for local development

Le runtime de Functions utilise un compte de stockage Azure en interne.The Functions runtime uses an Azure Storage account internally. Pour tous les types de déclencheur autres que HTTP et webhooks, vous devez définir la clé Values.AzureWebJobsStorage sur une chaîne de connexion de compte de stockage Azure valide.For all trigger types other than HTTP and webhooks, you must set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. Votre application de fonctions peut aussi utiliser l’émulateur de stockage Azure pour le paramètre de connexion AzureWebJobsStorage qui est nécessaire au projet.Your function app can also use the Azure storage emulator for the AzureWebJobsStorage connection setting that is required by the project. Pour utiliser l’émulateur, définissez la valeur de AzureWebJobsStorage sur UseDevelopmentStorage=true.To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. Modifiez ce paramètre afin de lui associer une chaîne de connexion au compte de stockage réel avant le déploiement.Change this setting to an actual storage account connection string before deployment.

Pour définir la chaîne de connexion de compte de stockage :To set the storage account connection string:

  1. Dans Visual Studio, ouvrez Cloud Explorer, développez Compte de stockage > Votre compte de stockage, puis dans l'onglet Propriétés, copiez la valeur Chaîne de connexion principale.In Visual Studio, open Cloud Explorer, expand Storage Account > Your Storage Account, then in the Properties tab copy the Primary Connection String value.

  2. Dans votre projet, ouvrez le fichier local.settings.json et définissez la valeur de la clé AzureWebJobsStorage sur la chaîne de connexion que vous avez copiée.In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  3. Répétez l’étape précédente pour ajouter des clés uniques au tableau Valeurs pour les autres connexions requises par vos fonctions.Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

Ajouter une fonction à votre projetAdd a function to your project

Dans les fonctions de bibliothèque de classes C#, les liaisons utilisées par la fonction sont définies en appliquant des attributs dans le code.In C# class library functions, the bindings used by the function are defined by applying attributes in the code. Lorsque vous créez vos déclencheurs de fonction à partir des modèles fournis, les attributs des déclencheurs sont appliqués pour vous.When you create your function triggers from the provided templates, the trigger attributes are applied for you.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de projet et sélectionnez Ajouter > Nouvel élément.In Solution Explorer, right-click on your project node and select Add > New Item. Sélectionnez Fonction Azure, tapez un nom pour la classe, puis cliquez sur Ajouter.Select Azure Function, type a Name for the class, and click Add.

  2. Choisissez votre déclencheur, définissez les propriétés de liaison, puis cliquez sur Créer.Choose your trigger, set the binding properties, and click Create. L’exemple suivant montre les paramètres lors de la création d’une fonction déclenchée par le stockage File d’attente.The following example shows the settings when creating a Queue storage triggered function.

    Créer une fonction déclenchée par une file d’attente

    Cet exemple de déclencheur utilise une chaîne de connexion avec une clé nommée QueueStorage.This trigger example uses a connection string with a key named QueueStorage. Ce paramètre de chaîne de connexion doit être défini dans le fichier local.settings.json.This connection string setting must be defined in the local.settings.json file.

  3. Examinez la classe qui vient d’être ajoutée.Examine the newly added class. Vous voyez une méthode statique Run, qui est attribuée avec l’attribut FunctionName.You see a static Run method, that is attributed with the FunctionName attribute. Cet attribut indique que la méthode est le point d’entrée de la fonction.This attribute indicates that the method is the entry point for the function.

    Par exemple, la classe C# suivante représente une fonction de stockage déclenchée par le stockage File d’attente :For example, the following C# class represents a basic Queue storage triggered function:

    using System;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;
    
    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("QueueTriggerCSharp")]
            public static void Run([QueueTrigger("myqueue-items", 
                Connection = "QueueStorage")]string myQueueItem, ILogger log)
            {
                log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
            }
        }
    }
    

    Un attribut spécifique à la liaison est appliqué à chaque paramètre de liaison fourni à la méthode de point d’entrée.A binding-specific attribute is applied to each binding parameter supplied to the entry point method. L’attribut accepte les informations de liaison en tant que paramètres.The attribute takes the binding information as parameters. Dans l’exemple précédent, un attribut QueueTrigger est appliqué au premier paramètre, indiquant ainsi la fonction déclenchée par la file d’attente.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating queue triggered function. Le nom de la file d’attente et le nom du paramètre de la chaîne de connexion sont transmis en tant que paramètres à l’attribut QueueTrigger.The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. Pour plus d’informations, consultez Liaisons de stockage File d’attente Azure pour Azure Functions.For more information, see Azure Queue storage bindings for Azure Functions.

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.

Ajouter des liaisonsAdd bindings

Comme avec les déclencheurs, les liaisons d’entrée et de sortie sont ajoutées à votre fonction en tant qu’attributs de liaison.As with triggers, input and output bindings are added to your function as binding attributes. Ajoutez des liaisons à une fonction comme suit :Add bindings to a function as follows:

  1. Vérifiez que vous avez configuré le projet pour un développement local.Make sure you've configured the project for local development.

  2. Ajoutez le package d’extension NuGet approprié pour la liaison spécifique.Add the appropriate NuGet extension package for the specific binding. Pour plus d’informations, consultez Local C# development using Visual Studio (Développement C# local à l’aide de Visual Studio) dans l’article relatifs aux déclencheurs et liaisons.For more information, see Local C# development using Visual Studio in the Triggers and Bindings article. Les exigences de package NuGet spécifique à la liaison sont indiquées dans l’article de référence pour la liaison.The binding-specific NuGet package requirements are found in the reference article for the binding. Par exemple, recherchez les exigences de package pour le déclencheur Event Hubs dans l’article de référence de la liaison Event Hubs.For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. Si la liaison requiert des paramètres de l’application, ajoutez-les à la collection Valeurs dans le fichier de paramètres local.If there are app settings that the binding needs, add them to the Values collection in the local setting file. Ces valeurs sont utilisées lorsque la fonction s’exécute localement.These values are used when the function runs locally. Lorsque la fonction s’exécute dans l’application de fonction dans Azure, les paramètres de l’application de fonction sont utilisés.When the function runs in the function app in Azure, the function app settings are used.

  4. Ajoutez l’attribut de liaison correspondant à la signature de méthode.Add the appropriate binding attribute to the method signature. Dans l’exemple suivant, un message de file d’attente déclenche la fonction, et la liaison de sortie crée un nouveau message de file d’attente avec le même texte dans une autre file d’attente.In the following example, a queue message triggers the function, and the output binding creates a new queue message with the same text in a different queue.

    public static class SimpleExampleWithOutput
    {
        [FunctionName("CopyQueueMessage")]
        public static void Run(
            [QueueTrigger("myqueue-items-source", Connection = "AzureWebJobsStorage")] string myQueueItem, 
            [Queue("myqueue-items-destination", Connection = "AzureWebJobsStorage")] out string myQueueItemCopy,
            ILogger log)
        {
            log.LogInformation($"CopyQueueMessage function processed: {myQueueItem}");
            myQueueItemCopy = myQueueItem;
        }
    }
    

    La connexion au stockage de file d’attente est obtenue à partir du paramètre AzureWebJobsStorage.The connection to Queue storage is obtained from the AzureWebJobsStorage setting. Pour plus d’informations, consultez l’article de référence pour la liaison spécifique.For more information, see the reference article for the specific binding.

Ce tableau présente les liaisons qui sont prises en charge dans les versions majeures du runtime Azure Functions :This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TypeType 1.x1.x 2.x et ultérieures12.x and higher1 DéclencheurTrigger EntréeInput OutputOutput
Stockage BlobBlob storage
Cosmos DBCosmos DB
Event GridEvent Grid
Hubs d'événementsEvent Hubs
HTTP et WebhooksHTTP & webhooks
IoT HubIoT Hub
Microsoft Graph
Tableaux Excel
Microsoft Graph
Excel tables
Microsoft Graph
Fichiers OneDrive
Microsoft Graph
OneDrive files
Microsoft Graph
E-mail Outlook
Microsoft Graph
Outlook email
Microsoft Graph
événements
Microsoft Graph
events
Microsoft Graph
Jetons d’authentification
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Stockage de files d’attenteQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Stockage TableTable storage
MinuteurTimer
TwilioTwilio

1 À compter du runtime de la version 2.x, toutes les liaisons à l’exception de HTTP et du minuteur doivent être inscrites.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Consultez Inscrire des extensions de liaison.See Register binding extensions.

Tester les fonctionsTesting functions

Azure Functions Core Tools vous permet d’exécuter un projet Azure Functions sur votre ordinateur de développement local.Azure Functions Core Tools lets you run Azure Functions project on your local development computer. Vous êtes invité à installer ces outils la première fois que vous démarrez une fonction dans Visual Studio.You are prompted to install these tools the first time you start a function from Visual Studio.

Pour tester votre fonction, appuyez sur F5.To test your function, press F5. Si vous y êtes invité, acceptez la requête dans Visual Studio pour télécharger et installer Azure Functions Core (CLI) Tools.If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Vous devrez peut-être activer une exception de pare-feu afin de permettre aux outils de prendre en charge les requêtes HTTP.You may also need to enable a firewall exception so that the tools can handle HTTP requests.

Avec le projet en cours d’exécution, vous pouvez tester votre code comme vous testeriez la fonction déployée.With the project running, you can test your code as you would test deployed function. Pour plus d’informations, consultez Stratégies permettant de tester votre code dans Azure Functions.For more information, see Strategies for testing your code in Azure Functions. Lors de l’exécution en mode débogage, les points d’arrêt sont atteints dans Visual Studio comme prévu.When running in debug mode, breakpoints are hit in Visual Studio as expected.

Pour en savoir plus sur l’utilisation d’Azure Functions Core Tools, consultez Procédure locale de codage et de test d’Azure Functions.To learn more about using the Azure Functions Core Tools, see Code and test Azure functions locally.

Publication dans AzurePublish to Azure

Lors de la publication à partir de Visual Studio, l’une des deux méthodes de déploiement suivantes est utilisée :When publishing from Visual Studio, one of two deployment methods are used:

La procédure suivante vous permet de publier votre projet dans une Function App sur Azure.Use the following steps to publish your project to a function app in Azure.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Publier.In Solution Explorer, right-click the project and select Publish.

  2. Dans la boîte de dialogue Choisir une cible de publication, utilisez les options de publication comme indiqué dans le tableau sous l’image :In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Choisir une cible de publication

    OptionOption DescriptionDescription
    Plan Consommation Azure FunctionsAzure Functions Consumption plan Quand vous publiez votre projet dans une application de fonction qui s'exécute dans un Plan Consommation, vous payez uniquement pour les exécutions de votre application.When you publish your project to a function app that runs in a Consumption plan, you only pay for executions of your functions app. D’autres plans d’hébergement occasionnent des coûts plus élevés.Other hosting plans incur higher costs. Pour en savoir plus, voir Mise à l’échelle et hébergement d’Azure Functions.To learn more, see Azure Functions scale and hosting.
    CréerCreate new Une nouvelle application de fonction, avec les ressources associées, est créée dans Azure.A new function app, with related resources, is created in Azure. Lorsque vous choisissez Sélectionner existant, tous les fichiers de l’application de fonction existante dans Azure sont remplacés par les fichiers du projet local.When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. N’utilisez cette option que lorsque vous réappliquez des mises à jour à une application de fonction existante.Only use this option when republishing updates to an existing function app.
    Exécuter à partir d’un fichier de packageRun from package file Votre application de fonction est déployée en utilisant Zip Deploy avec le mode Exécuter à partir du fichier de package activé.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Il s’agit de la méthode recommandée pour exécuter vos fonctions, car elle produit de meilleures performances.This is the recommended way of running your functions, which results in better performance. Quand vous n’utilisez pas cette option, veillez à ce que votre projet d’application de fonction ne s’exécute pas localement avant de publier sur Azure.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Sélectionnez Publier.Select Publish. Si vous ne vous êtes pas encore connecté à votre compte Azure à partir de Visual Studio, sélectionnez Connexion.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Vous pouvez également créer un compte Azure gratuit.You can also create a free Azure account.

  4. Dans la boîte de dialogue Azure App Service : Créer nouveau, utilisez les paramètres Hébergement comme indiqué dans le tableau situé sous l’image :In the Azure App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Boîte de dialogue Créer App Service

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    NomName Nom globalement uniqueGlobally unique name Nom qui identifie uniquement votre nouvelle application de fonction.Name that uniquely identifies your new function app. Les caractères valides sont a-z, 0-9 et -.Valid characters are a-z, 0-9, and -.
    AbonnementSubscription Choisir votre abonnementChoose your subscription Sélectionnez l’abonnement Azure à utiliser.The Azure subscription to use.
    Groupe de ressourcesResource Group myResourceGroupmyResourceGroup 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 Nouveau pour créer un groupe de ressources.Choose New to create a new resource group.
    Plan d’hébergementHosting Plan Plan de consommationConsumption plan Après avoir sélectionné Nouveau pour créer un plan serverless, veillez à choisir Consommation sous Taille.Make sure to choose the Consumption under Size after you select New to create a serverless plan. Choisissez également un Emplacement dans une région près de chez vous ou près d’autres services auxquels ont accès vos fonctions.Also, choose a Location in a region near you or near other services your functions access. Si vous exécutez un plan autre que le plan Consommation, vous devez gérer la mise à l’échelle de votre application de fonction.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Stockage AzureAzure Storage Compte de stockage à usage généralGeneral-purpose storage account Un compte de stockage Azure est obligatoire par le runtime Functions.An Azure storage account is required by the Functions runtime. Sélectionnez Nouveau pour créer un compte de stockage universel.Select New to create a general-purpose storage account. Vous pouvez également utiliser un compte existant qui répond aux exigences relatives aux comptes de stockage.You can also use an existing account that meets the storage account requirements.
  5. Sélectionnez Créer pour créer une application de fonction et les ressources associées dans Azure avec ces paramètres et déployer votre code de projet de fonction.Select Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. Une fois le déploiement terminé, notez la valeur URL du site, qui est l’adresse de votre application de fonctions dans Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Message de réussite de publication

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 aren't uploaded automatically when you publish the project.

Le moyen le plus simple de charger les paramètres obligatoires sur votre application de fonctions dans Azure consiste à utiliser le lien Gérer les paramètres d’application... qui apparaît une fois votre projet correctement publié.The easiest way to upload the required settings to your function app in Azure is to use the Manage Application Settings... link that is displayed after you successfully publish your project.

Vous accédez ainsi à la boîte de dialogue Paramètres de l’application de l’application de fonctions, où vous pouvez ajouter de nouveaux paramètres d’application ou modifier des paramètres existants.This displays the Application Settings dialog for the function app, where you can add new application settings or modify existing ones.

Local représente une valeur de paramètre dans le fichier local.settings.json, et Distant correspond au paramètre actuel dans l’application de fonction dans Azure.Local represents a setting value in the local.settings.json file, and Remote is the current setting in the function app in Azure. Sélectionnez Ajouter le paramètre pour créer un nouveau paramètre d’application.Choose Add Setting to create a new app setting. Utilisez le lien Insérer une valeur locale pour copier une valeur de paramètre dans le champ Distant.Use the Insert value from Local link to copy a setting value to the Remote field. Les modifications en attente sont écrites dans le fichier de paramètres local et l’application de fonction lorsque vous sélectionnez OK.Pending changes are written to the local settings file and the function app when you select OK.

Notes

Par défaut, le fichier local.settings.json n’est pas archivé dans le contrôle de code source.By default, the local.settings.json file is not checked into source control. Cela signifie que lorsque vous clonez un projet Functions local à partir du contrôle de code source, le projet n’a pas de fichier local.settings.json.This means that when you clone a local Functions project from source control, the project doesn't have a local.settings.json file. Dans ce cas, vous devez créer manuellement ce fichier à la racine du projet pour que la boîte de dialogue Paramètres d’application fonctionne comme prévu.In this case, you need to manually create the local.settings.json file in the project root so that the Application Settings dialog works as expected.

Vous pouvez également gérer les paramètres d’application d’une des manières suivantes :You can also manage application settings in one of these other ways:

Surveillance des fonctionsMonitoring functions

Il est recommandé de superviser l’exécution de vos fonctions en intégrant votre application de fonction à Azure Application Insights.The recommended way to monitor the execution of your functions is by integrating your function app with Azure Application Insights. Lorsque vous créez une application de fonction dans le portail Azure, cette intégration est faite pour vous par défaut.When you create a function app in the Azure portal, this integration is done for you by default. Toutefois, lorsque vous créez votre application de fonction lors de la publication avec Visual Studio, l’intégration avec votre application de fonction dans Azure n’est pas effectuée.However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done.

Pour activer Application Insights pour votre application de fonction :To enable Application Insights for your function app:

La solution Azure Functions facilite l’ajout de l’intégration d’Application Insights à une application de fonction à partir du portail Azure.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. Dans le portail, sélectionnez Tous les services > Applications de fonction, sélectionnez votre application de fonction, puis choisissez la bannière Application Insights en haut de la fenêtre.In the portal, select All services > Function Apps, select your function app, and then select the Application Insights banner at the top of the window

    Activer Application Insights à partir du portail

  2. Créez une ressource Application Insights en utilisant les paramètres spécifiés dans le tableau sous l’image.Create an Application Insights resource by using the settings specified in the table below the image.

    Création d’une ressource Application Insights dans Azure

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    NomName Nom d’application uniqueUnique app name Il est plus facile d’utiliser le même nom que celui de votre application de fonction, qui doit être unique dans votre abonnement.It's easiest to use the same name as your function app, which must be unique in your subscription.
    LieuLocation Europe OuestWest Europe Si possible, utilisez la même région que celle de votre application de fonction ou une région proche.If possible, use the same region as your function app, or one that's close to that region.
  3. Sélectionnez OK.Select OK. La ressource Application Insights est créée dans le même groupe de ressources et le même abonnement que votre application de fonction.The Application Insights resource is created in the same resource group and subscription as your function app. Une fois la ressource créée, fermez la fenêtre Application Insights.After the resource is created, close the Application Insights window.

  4. Dans votre application de fonction, sélectionnez Paramètres de l’application, puis faites défiler jusqu’à Paramètres de l’application.Back in your function app, select Application settings, and then scroll down to Application settings. Si vous voyez un paramètre nommé APPINSIGHTS_INSTRUMENTATIONKEY, cela signifie que l’intégration d’Application Insights est activée pour votre application de fonction s’exécutant dans Azure.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

Pour en savoir plus, consultez Surveiller l’exécution des fonctions Azure.To learn more, see Monitor Azure Functions.

Étapes suivantesNext steps

Pour en savoir plus sur Azure Functions Core Tools, consultez Procédure locale de codage et de test d’Azure Functions.To learn more about the Azure Functions Core Tools, see Code and test Azure functions locally.

Pour en savoir plus sur le développement de fonctions en tant que bibliothèques de classes, consultez Informations de référence pour les développeurs C# sur Azure Functions.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference. Cet article fournit également des liens vers des exemples d’utilisation d’attributs pour déclarer les différents types de liaisons pris en charge par Azure Functions.This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.