Connecter Azure Functions à Stockage Azure avec Visual Studio CodeConnect Azure Functions to Azure Storage using Visual Studio Code

Azure Functions vous permet de connecter des services Azure et d’autres ressources à des fonctions sans avoir à écrire votre propre code d’intégration.Azure Functions lets you connect Azure services and other resources to functions without having to write your own integration code. Ces liaisons, qui représentent l’entrée et la sortie, sont déclarées dans la définition de la fonction.These bindings, which represent both input and output, are declared within the function definition. Les données issues des liaisons sont fournies à la fonction en tant que paramètres.Data from bindings is provided to the function as parameters. Un déclencheur est un type spécial de liaison d’entrée.A trigger is a special type of input binding. Si une fonction ne peut avoir qu’un seul déclencheur, elle peut avoir plusieurs liaisons d’entrée et de sortie.Although a function has only one trigger, it can have multiple input and output bindings. Pour en savoir plus, consultez Concepts des déclencheurs et liaisons Azure Functions.To learn more, see Azure Functions triggers and bindings concepts.

Cet article vous montre comment utiliser Visual Studio Code pour connecter le stockage Azure à la fonction que vous avez créée dans le guide de démarrage rapide précédent.This article shows you how to use Visual Studio Code to connect Azure Storage to the function you created in the previous quickstart article. La liaison de sortie que vous ajoutez à cette fonction écrit des données provenant de la requête HTTP dans un message au sein de la file d’attente de Stockage File d’attente Azure.The output binding that you add to this function writes data from the HTTP request to a message in an Azure Queue storage queue.

La plupart des liaisons requièrent une chaîne de connexion stockée que Functions utilise pour accéder au service lié.Most bindings require a stored connection string that Functions uses to access the bound service. Pour simplifier, vous utilisez le compte de stockage que vous avez créé avec votre application de fonction.To make it easier, you use the Storage account that you created with your function app. La connexion à ce compte est déjà stockée dans un paramètre d’application nommé AzureWebJobsStorage.The connection to this account is already stored in an app setting named AzureWebJobsStorage.

Configurer votre environnement localConfigure your local environment

Avant de commencer cet article, vous devez satisfaire aux conditions suivantes :Before you start this article, you must meet the following requirements:

Cet article suppose que vous êtes déjà connecté à votre abonnement Azure à partir de Visual Studio Code.This article assumes that you're already signed in to your Azure subscription from Visual Studio Code. Vous pouvez vous connecter en exécutant Azure: Sign In à partir de la palette de commandes.You can sign in by running Azure: Sign In from the command palette.

Télécharger les paramètres de l’application de fonctionDownload the function app settings

Dans l’article du guide de démarrage rapide précédent, vous avez créé une application de fonction dans Azure ainsi que le compte de stockage nécessaire.In the previous quickstart article, you created a function app in Azure along with the required Storage account. La chaîne de connexion pour ce compte est stockée de manière sécurisée dans les paramètres d’application au sein d’Azure.The connection string for this account is stored securely in app settings in Azure. Dans cet article, vous allez écrire des messages dans une file d’attente de stockage au sein du même compte.In this article, you write messages to a Storage queue in the same account. Pour vous connecter à votre compte de stockage lors de l’exécution de la fonction localement, vous devez télécharger les paramètres de l’application dans le fichier local.settings.json.To connect to your Storage account when running the function locally, you must download app settings to the local.settings.json file.

  1. Appuyez sur F1 pour ouvrir la palette de commandes, puis recherchez et exécutez la commande Azure Functions: Download Remote Settings.....Press the F1 key to open the command palette, then search for and run the command Azure Functions: Download Remote Settings.....

  2. Choisissez l’application de fonction que vous avez créée dans l’article précédent.Choose the function app you created in the previous article. Sélectionnez Oui pour tout pour remplacer les paramètres locaux existants.Select Yes to all to overwrite the existing local settings.

    Important

    Comme il contient des secrets, le fichier local.settings.json n’est jamais publié et il est exclu du contrôle de code source.Because it contains secrets, the local.settings.json file never gets published, and is excluded from source control.

  3. Copiez la valeur de AzureWebJobsStorage, qui est la clé pour la valeur de la chaîne de connexion du compte de stockage.Copy the value AzureWebJobsStorage, which is the key for the Storage account connection string value. Cette connexion vous permet de vérifier que la liaison de sortie fonctionne comme prévu.You use this connection to verify that the output binding works as expected.

Inscrire des extensions de liaisonRegister binding extensions

Comme vous utilisez une liaison de sortie de Stockage File d’attente, vous devez disposer de l’extension de liaisons de Stockage avant d’exécuter le projet.Because you're using a Queue storage output binding, you must have the Storage bindings extension installed before you run the project.

Votre projet a été configuré pour utiliser des bundles d’extension, et installe automatiquement un ensemble prédéfini de packages d’extension.Your project has been configured to use extension bundles, which automatically installs a predefined set of extension packages.

L’utilisation des bundles d’extension est activée dans le fichier host.json, à la racine du projet, et se présente de la façon suivante :Extension bundles usage is enabled in the host.json file at the root of the project, which appears as follows:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  } 
}

À l’exception des déclencheurs HTTP et de minuterie, les liaisons sont implémentées sous la forme de packages d’extension.With the exception of HTTP and timer triggers, bindings are implemented as extension packages. Exécutez la commande dotnet add package suivante dans la fenêtre de terminal pour ajouter le package d’extension de Stockage à votre projet.Run the following dotnet add package command in the Terminal window to add the Storage extension package to your project.

dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage

Vous pouvez maintenant ajouter la liaison de sortie de stockage à votre projet.Now, you can add the storage output binding to your project.

Ajouter une liaison de sortieAdd an output binding

Dans Functions, chaque type de liaison requiert la définition d’une direction, d’un type et d’un name unique dans le fichier function.json.In Functions, each type of binding requires a direction, type, and a unique name to be defined in the function.json file. La façon dont vous définissez ces attributs dépend du langage de votre application de fonction.The way you define these attributes depends on the language of your function app.

Les attributs de liaison sont définis directement dans le fichier function.json.Binding attributes are defined directly in the function.json file. Selon le type de liaison, des propriétés supplémentaires peuvent être requises.Depending on the binding type, additional properties may be required. La configuration de la sortie de la file d’attente décrit les champs requis pour une liaison de file d’attente Stockage Azure.The queue output configuration describes the fields required for an Azure Storage queue binding. L’extension vous permet d’ajouter facilement des liaisons au fichier function.json.The extension makes it easy to add bindings to the function.json file.

Pour créer une liaison, cliquez avec le bouton droit (Ctrl+Clic sur macOS) sur le fichier function.json dans votre dossier HttpTrigger, puis choisissez Ajouter une liaison... . Suivez les invites pour définir les propriétés de liaison suivantes pour la nouvelle liaison :To create a binding, right-click (Ctrl+click on macOS) the function.json file in your HttpTrigger folder and choose Add binding.... Follow the prompts to define the following binding properties for the new binding:

PromptPrompt ValeurValue DescriptionDescription
Sélectionner le sens de la liaisonSelect binding direction out La liaison est une liaison de sortie.The binding is an output binding.
Sélectionner une liaison avec un sens...Select binding with direction... Azure Queue Storage La liaison est une liaison de file d’attente Stockage Azure.The binding is an Azure Storage queue binding.
Nom utilisé pour identifier cette liaison dans votre codeThe name used to identify this binding in your code msg Nom qui identifie le paramètre de liaison référencé dans votre code.Name that identifies the binding parameter referenced in your code.
File d’attente à laquelle le message sera envoyéThe queue to which the message will be sent outqueue Nom de la file d’attente dans laquelle écrit la liaison.The name of the queue that the binding writes to. Si queueName n’existe pas, la liaison le crée à la première utilisation.When the queueName doesn't exist, the binding creates it on first use.
Sélectionnez le paramètre dans « local.setting.json »Select setting from "local.setting.json" AzureWebJobsStorage Nom d’un paramètre d’application qui contient la chaîne de connexion du compte de stockage.The name of an application setting that contains the connection string for the Storage account. Le paramètre AzureWebJobsStorage contient la chaîne de connexion du compte de stockage que vous avez créé avec l’application de fonction.The AzureWebJobsStorage setting contains the connection string for the Storage account you created with the function app.

Une liaison est ajoutée au tableau bindings dans votre fichier function.json, qui doit ressembler à ce qui suit :A binding is added to the bindings array in your function.json, which should look like the following:

{
  "type": "queue",
  "direction": "out",
  "name": "msg",
  "queueName": "outqueue",
  "connection": "AzureWebJobsStorage"
}

Dans un projet de bibliothèque de classes C#, les liaisons sont définies comme attributs de liaison sur la méthode de fonction.In a C# class library project, the bindings are defined as binding attributes on the function method. Le fichier function.json nécessaire à Functions est ensuite généré automatiquement en fonction de ces attributs.The function.json file required by Functions is then auto-generated based on these attributes.

Ouvrez le fichier projet HttpExample.cs, puis ajoutez le paramètre suivant à la définition de la méthode Run :Open the HttpExample.cs project file and add the following parameter to the Run method definition:

[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,

Le paramètre msg est un type ICollector<T>, qui représente une collection de messages écrits dans une liaison de sortie quand la fonction se termine.The msg parameter is an ICollector<T> type, which represents a collection of messages that are written to an output binding when the function completes. Dans ce cas, la sortie est une file d’attente de stockage nommée outqueue.In this case, the output is a storage queue named outqueue. La chaîne de connexion pour le compte de stockage est définie par StorageAccountAttribute.The connection string for the Storage account is set by the StorageAccountAttribute. Cet attribut indique le paramètre qui contient la chaîne de connexion du compte de stockage et qui peut être appliqué au niveau de la classe, de la méthode ou du paramètre.This attribute indicates the setting that contains the Storage account connection string and can be applied at the class, method, or parameter level. Dans ce cas, vous pourriez omettre StorageAccountAttribute, car vous utilisez déjà le compte de stockage par défaut.In this case, you could omit StorageAccountAttribute because you are already using the default storage account.

La définition de la méthode Run doit maintenant se présenter comme ceci :The Run method definition should now look like the following:

[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, 
    [Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg, 
    ILogger log)

Dans un projet Java, les liaisons sont définies comme annotations de liaison sur la méthode de fonction.In a Java project, the bindings are defined as binding annotations on the function method. Le fichier function.json est ensuite généré automatiquement en fonction de ces annotations.The function.json file is then autogenerated based on these annotations.

Accédez à l’emplacement de votre code de fonction sous src/main/java, ouvrez le fichier projet Function.java, puis ajoutez le paramètre suivant à la définition de la méthode run :Browse to the location of your function code under src/main/java, open the Function.java project file, and add the following parameter to the run method definition:

@QueueOutput(name = "msg", queueName = "outqueue", 
connection = "AzureWebJobsStorage") OutputBinding<String> msg,

Le paramètre msg est un type OutputBinding<T>, qui représente une collection de chaînes écrites en tant que messages à une liaison de sortie quand la fonction se termine.The msg parameter is an OutputBinding<T> type, which represents a collection of strings that are written as messages to an output binding when the function completes. Dans ce cas, la sortie est une file d’attente de stockage nommée outqueue.In this case, the output is a storage queue named outqueue. La chaîne de connexion pour le compte de stockage est définie par la méthode connection.The connection string for the Storage account is set by the connection method. Au lieu de passer la chaîne de connexion proprement dite, vous passez le paramètre d’application qui contient la chaîne de connexion du compte de stockage.Rather than the connection string itself, you pass the application setting that contains the Storage account connection string.

La définition de la méthode run doit maintenant ressembler à l’exemple suivant :The run method definition should now look like the following example:

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Ajouter le code qui utilise la liaison de sortieAdd code that uses the output binding

Une fois que la liaison est définie, vous pouvez utiliser l’attribut name de la liaison pour y accéder en tant qu’attribut dans la signature de fonction.After the binding is defined, you can use the name of the binding to access it as an attribute in the function signature. En utilisant une liaison de sortie, vous n’avez pas besoin de recourir au code du SDK Stockage Azure pour l’authentification, l’obtention d’une référence de file d’attente ou l’écriture de données.By using an output binding, you don't have to use the Azure Storage SDK code for authentication, getting a queue reference, or writing data. La liaison de sortie de file d’attente et le runtime Functions effectuent ces tâches.The Functions runtime and queue output binding do those tasks for you.

Ajoutez le code qui utilise l’objet de liaison de sortie msg sur context.bindings pour créer un message de file d’attente.Add code that uses the msg output binding object on context.bindings to create a queue message. Ajoutez ce code avant l’instruction context.res.Add this code before the context.res statement.

// Add a message to the Storage queue,
// which is the name passed to the function.
context.bindings.msg = (req.query.name || req.body.name);

À ce stade, votre fonction doit se présenter comme suit :At this point, your function should look as follows:

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    if (req.query.name || (req.body && req.body.name)) {
        // Add a message to the Storage queue,
        // which is the name passed to the function.
        context.bindings.msg = (req.query.name || req.body.name);
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: "Hello " + (req.query.name || req.body.name)
        };
    }
    else {
        context.res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
};

Ajoutez le code qui utilise l’objet de liaison de sortie msg sur context.bindings pour créer un message de file d’attente.Add code that uses the msg output binding object on context.bindings to create a queue message. Ajoutez ce code avant l’instruction context.res.Add this code before the context.res statement.

context.bindings.msg = name;

À ce stade, votre fonction doit se présenter comme suit :At this point, your function should look as follows:

import { AzureFunction, Context, HttpRequest } from "@azure/functions"

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
    context.log('HTTP trigger function processed a request.');
    const name = (req.query.name || (req.body && req.body.name));

    if (name) {
        // Add a message to the storage queue, 
        // which is the name passed to the function.
        context.bindings.msg = name; 
        // Send a "hello" response.
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: "Hello " + (req.query.name || req.body.name)
        };
    }
    else {
        context.res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
};

export default httpTrigger;

Ajoutez du code qui utilise l’applet de commande Push-OutputBinding pour écrire du texte dans la file d’attente à l’aide de la liaison de sortie msg.Add code that uses the Push-OutputBinding cmdlet to write text to the queue using the msg output binding. Ajoutez ce code avant de définir l’état OK dans l’instruction if.Add this code before you set the OK status in the if statement.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

À ce stade, votre fonction doit se présenter comme suit :At this point, your function should look as follows:

using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

# Interact with query parameters or the body of the request.
$name = $Request.Query.Name
if (-not $name) {
    $name = $Request.Body.Name
}

if ($name) {
    # Write the $name value to the queue, 
    # which is the name passed to the function.
    $outputMsg = $name
    Push-OutputBinding -name msg -Value $outputMsg

    $status = [HttpStatusCode]::OK
    $body = "Hello $name"
}
else {
    $status = [HttpStatusCode]::BadRequest
    $body = "Please pass a name on the query string or in the request body."
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = $status
    Body = $body
})

Mettez à jour HttpExample\__init__.py pour correspondre au code suivant, en ajoutant le paramètre msg à la définition de fonction et msg.set(name) sous l’instruction if name:.Update HttpExample\__init__.py to match the following code, adding the msg parameter to the function definition and msg.set(name) under the if name: statement.

import logging

import azure.functions as func


def main(req: func.HttpRequest, msg: func.Out[func.QueueMessage]) -> str:

    name = req.params.get('name')
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get('name')

    if name:
        msg.set(name)
        return func.HttpResponse(f"Hello {name}!")
    else:
        return func.HttpResponse(
            "Please pass a name on the query string or in the request body",
            status_code=400
        )

Le paramètre msg est une instance de la azure.functions.InputStream class.The msg parameter is an instance of the azure.functions.InputStream class. Sa méthode set écrit un message de type chaîne dans la file d’attente. Dans le cas présent, il s’agit du nom passé à la fonction dans la chaîne de requête de l’URL.Its set method writes a string message to the queue, in this case the name passed to the function in the URL query string.

Ajoutez le code qui utilise l’objet de liaison de sortie msg pour créer un message de file d’attente.Add code that uses the msg output binding object to create a queue message. Ajoutez ce code avant que la méthode retourne.Add this code before the method returns.

if (!string.IsNullOrEmpty(name))
{
    // Add a message to the output collection.
    msg.Add(string.Format("Name passed to the function: {0}", name));
}

À ce stade, votre fonction doit se présenter comme suit :At this point, your function should look as follows:

[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, 
    [Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg, 
    ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string name = req.Query["name"];

    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    name = name ?? data?.name;

    if (!string.IsNullOrEmpty(name))
    {
        // Add a message to the output collection.
        msg.Add(string.Format("Name passed to the function: {0}", name));
    }
    return name != null
        ? (ActionResult)new OkObjectResult($"Hello, {name}")
        : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}

À présent, vous pouvez utiliser le nouveau paramètre msg pour écrire dans la liaison de sortie à partir de votre code de fonction.Now, you can use the new msg parameter to write to the output binding from your function code. Ajoutez la ligne de code suivante avant la réponse de réussite pour ajouter la valeur de name à la liaison de sortie msg.Add the following line of code before the success response to add the value of name to the msg output binding.

msg.setValue(name);

Lorsque vous utilisez une liaison de sortie, vous n’avez pas besoin de recourir au code du Kit de développement logiciel (SDK) Stockage Azure pour l’authentification, l’obtention d’une référence de file d’attente ou l’écriture de données.When you use an output binding, you don't have to use the Azure Storage SDK code for authentication, getting a queue reference, or writing data. La liaison de sortie de file d’attente et le runtime Functions effectuent ces tâches.The Functions runtime and queue output binding do those tasks for you.

Votre méthode run doit maintenant ressembler à l’exemple suivant :Your run method should now look like the following example:

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {
    context.getLogger().info("Java HTTP trigger processed a request.");

    // Parse query parameter
    String query = request.getQueryParameters().get("name");
    String name = request.getBody().orElse(query);

    if (name == null) {
        return request.createResponseBuilder(HttpStatus.BAD_REQUEST)
        .body("Please pass a name on the query string or in the request body").build();
    } else {
        // Write the name to the message queue. 
        msg.setValue(name);

        return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
    }
}

Mettre à jour les testsUpdate the tests

Étant donné que l’archétype crée également un ensemble de tests, vous devez mettre à jour ces tests pour gérer le nouveau paramètre msg dans la signature de méthode run.Because the archetype also creates a set of tests, you need to update these tests to handle the new msg parameter in the run method signature.

Accédez à l’emplacement de votre code de test sous src/test/Java, ouvrez le fichier projet Function.java et remplacez la ligne de code sous //Invoke par le code suivant.Browse to the location of your test code under src/test/java, open the Function.java project file, and replace the line of code under //Invoke with the following code.

@SuppressWarnings("unchecked")
final OutputBinding<String> msg = (OutputBinding<String>)mock(OutputBinding.class);
final HttpResponseMessage ret = new Function().run(req, msg, context);

Exécuter la fonction localementRun the function locally

  1. Comme dans l’article précédent, appuyez sur F5 pour démarrer le projet d’application de fonction et Core Tools.As in the previous article, press F5 to start the function app project and Core Tools.

  2. Une fois Core Tools en cours d’exécution, accédez à la zone Azure : Functions.With Core Tools running, go to the Azure: Functions area. Sous Fonctions, développez Projet local > Fonctions.Under Functions, expand Local Project > Functions. Cliquez avec le bouton droit (Ctrl-clic sur Mac) sur la fonction HttpExample, puis choisissez Exécuter la fonction maintenant.Right-click (Ctrl-click on Mac) the HttpExample function and choose Execute Function Now....

    Exécuter la fonction maintenant dans Visual Studio Code

  3. Dans Entrer le corps de la requête, vous pouvez voir la valeur du corps du message de requête pour { "name": "Azure" }.In Enter request body you see the request message body value of { "name": "Azure" }. Appuyez sur Entrée pour envoyer ce message de requête à votre fonction.Press Enter to send this request message to your function.

  4. Une fois la réponse retournée, appuyez sur Ctrl+C pour arrêter Core Tools.After a response is returned, press Ctrl + C to stop Core Tools.

Dans la mesure où vous utilisez la chaîne de connexion de stockage, votre fonction se connecte au compte de stockage Azure quand elle s’exécute localement.Because you are using the storage connection string, your function connects to the Azure storage account when running locally. Le runtime Functions crée une file d’attente nommée outqueue dans votre compte de stockage lors de la première utilisation de la liaison de sortie.A new queue named outqueue is created in your storage account by the Functions runtime when the output binding is first used. Vous allez utiliser l’Explorateur Stockage pour vérifier que la file d’attente a été créée ainsi que le nouveau message.You'll use Storage Explorer to verify that the queue was created along with the new message.

Connecter l’Explorateur Stockage à votre compteConnect Storage Explorer to your account

Ignorez cette section si vous avez déjà installé l’Explorateur Stockage Azure et si vous l’avez connecté à votre compte Azure.Skip this section if you have already installed Azure Storage Explorer and connected it to your Azure account.

  1. Exécutez l’outil [Explorateur Stockage Azure], sélectionnez l’icône de connexion sur la gauche, puis sélectionnez Ajouter un compte.Run the [Azure Storage Explorer] tool, select the connect icon on the left, and select Add an account.

    Ajouter un compte Azure à l’Explorateur Stockage Microsoft Azure

  2. Dans la boîte de dialogue Se connecter, choisissez Ajouter un compte Azure, choisissez votre Environnement Azure, puis sélectionnez Se connecter... .In the Connect dialog, choose Add an Azure account, choose your Azure environment, and select Sign in....

    Connexion à votre compte Azure

Une fois connecté à votre compte, vous voyez tous les abonnements Azure associés à votre compte.After you successfully sign in to your account, you see all of the Azure subscriptions associated with your account.

Analyser la file d’attente de sortieExamine the output queue

  1. Dans Visual Studio Code, appuyez sur F1 pour ouvrir la palette de commandes, puis recherchez et exécutez la commande Azure Storage: Open in Storage Explorer, et choisissez le nom de votre compte de stockage.In Visual Studio Code, press the F1 key to open the command palette, then search for and run the command Azure Storage: Open in Storage Explorer and choose your Storage account name. Votre compte de stockage s’ouvre dans l’Explorateur Stockage Azure.Your storage account opens in Azure Storage Explorer.

  2. Développez le nœud Files d’attente, puis sélectionnez la file d’attente nommée outqueue.Expand the Queues node, and then select the queue named outqueue.

    La file d’attente contient le message que la liaison de sortie de file d’attente a créé lors de l’exécution de la fonction déclenchée via HTTP.The queue contains the message that the queue output binding created when you ran the HTTP-triggered function. Si vous avez appelé la fonction avec la valeur name par défaut d'Azure, le message de la file d'attente est Nom transmis à la fonction : Azure.If you invoked the function with the default name value of Azure, the queue message is Name passed to the function: Azure.

    Message de la file d’attente affiché dans l’Explorateur Stockage Azure

  3. Réexécutez la fonction et envoyez une autre demande : vous voyez alors apparaître un nouveau message dans la file d’attente.Run the function again, send another request, and you'll see a new message appear in the queue.

À présent, il est temps de republier sur Azure l’application de fonction mise à jour.Now, it's time to republish the updated function app to Azure.

Redéployer et tester l’application mise à jourRedeploy and verify the updated app

  1. Dans Visual Studio Code, appuyez sur F1 pour ouvrir la palette de commandes.In Visual Studio Code, press F1 to open the command palette. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Deploy to function app....In the command palette, search for and select Azure Functions: Deploy to function app....

  2. Choisissez l’application de fonction que vous avez créée dans le premier article.Choose the function app that you created in the first article. Comme vous redéployez votre projet sur la même application, sélectionnez Déployer pour ignorer l’avertissement sur le remplacement des fichiers.Because you're redeploying your project to the same app, select Deploy to dismiss the warning about overwriting files.

  3. Une fois le déploiement effectué, vous pouvez réutiliser la fonctionnalité Exécuter la fonction maintenant pour déclencher la fonction dans Azure.After deployment completes, you can again use the Execute Function Now... feature to trigger the function in Azure.

  4. Examinez à nouveau le message dans la file d’attente de stockage pour vérifier que la liaison de sortie regénère un nouveau message dans la file d’attente.Again view the message in the storage queue to verify that the output binding again generates a new message in the queue.

Nettoyer les ressourcesClean up resources

Dans Azure, le terme ressources fait référence aux applications de fonction, fonctions, comptes de stockage, et ainsi de suite.In Azure, resources refer to function apps, functions, storage accounts, and so forth. Elles sont rassemblées en groupes de ressources, et vous pouvez supprimer tous les éléments d’un groupe en supprimant le groupe.They're grouped into resource groups, and you can delete everything in a group by deleting the group.

Vous avez créé des ressources pour effectuer ces démarrages rapides.You created resources to complete these quickstarts. Vous pouvez être facturé pour ces ressources, en fonction de l’état de votre compte et de la tarification du service.You may be billed for these resources, depending on your account status and service pricing. Si vous n’avez plus besoin des ressources, voici comment les supprimer :If you don't need the resources anymore, here's how to delete them:

  1. Dans Visual Studio Code, appuyez sur F1 pour ouvrir la palette de commandes.In Visual Studio Code, press F1 to open the command palette. Dans la palette de commandes, recherchez et sélectionnez Azure Functions: Open in portal.In the command palette, search for and select Azure Functions: Open in portal.

  2. Choisissez votre application de fonction et appuyez sur Entrée.Choose your function app, and press Enter. La page de l’application de fonction s’ouvre dans le portail Azure.The function app page opens in the Azure portal.

  3. Sous l’onglet Vue d’ensemble, sélectionnez le lien nommé à côté de Groupe de ressources.In the Overview tab, select the named link next to Resource group.

    Sélectionnez le groupe de ressources à supprimer dans la page d’application de fonction.

  4. Sur la page Groupe de ressources, passez en revue la liste des ressources incluses et vérifiez qu’elles correspondent à celles que vous souhaitez supprimer.In the Resource group page, review the list of included resources, and verify that they are the ones you want to delete.

  5. Sélectionnez Supprimer le groupe de ressources et suivez les instructions.Select Delete resource group, and follow the instructions.

    Cette opération peut prendre quelques minutes.Deletion may take a couple of minutes. Une fois terminée, une notification s’affiche pendant quelques secondes.When it's done, a notification appears for a few seconds. Vous pouvez également sélectionner l’icône représentant une cloche en haut de la page pour afficher la notification.You can also select the bell icon at the top of the page to view the notification.

Étapes suivantesNext steps

Vous avez mis à jour votre fonction déclenchée via HTTP pour écrire des données dans une file d’attente de stockage.You've updated your HTTP triggered function to write data to a Storage queue. Pour en savoir plus sur le développement de fonctions à l’aide de Visual Studio Code, consultez maintenant ces articles :Now you can learn more about developing Functions using Visual Studio Code: