Connecter des fonctions à Stockage Azure avec Visual Studio

Azure Functions vous permet de connecter des services Azure et d’autres ressources à des fonctions sans avoir à écrire votre propre code d’intégration. Ces liaisons, qui représentent l’entrée et la sortie, sont déclarées dans la définition de la fonction. Les données issues des liaisons sont fournies à la fonction en tant que paramètres. Un déclencheur est un type spécial de liaison d’entrée. Si une fonction ne peut avoir qu’un seul déclencheur, elle peut avoir plusieurs liaisons d’entrée et de sortie. Pour en savoir plus, consultez Concepts des déclencheurs et liaisons Azure Functions.

Cet article montre comment utiliser Visual Studio pour connecter à Stockage Azure la fonction que vous avez créée dans l’article du guide de démarrage rapide précédent. 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.

La plupart des liaisons requièrent une chaîne de connexion stockée que Functions utilise pour accéder au service lié. Pour simplifier, vous utilisez le compte de stockage que vous avez créé avec votre application de fonction. La connexion à ce compte est déjà stockée dans un paramètre d’application nommé AzureWebJobsStorage.

Prérequis

Avant de commencer cet article :

  • Effectuez la partie 1 du guide de démarrage rapide de Visual Studio.
  • Installez l’Explorateur Stockage Azure. L’Explorateur Stockage est un outil que vous allez utiliser pour examiner les messages en file d’attente générés par votre liaison de sortie. L’Explorateur Stockage est pris en charge sur les systèmes d’exploitation macOS, Windows et Linux.
  • Connectez-vous à votre abonnement Azure à partir de Visual Studio.

Télécharger les paramètres de l’application de fonction

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. 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. Dans cet article, vous allez écrire des messages dans une file d’attente de stockage au sein du même compte. Pour vous connecter à votre compte de stockage lors de l’exécution de la fonction en local, vous devez télécharger les paramètres de l’application dans le fichier local.settings.json.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Publier.

  2. Dans l’onglet Publier sous Hébergement, développez les trois points ( ... ), puis sélectionnez Gérer les paramètres Azure App Service.

    Modifier les paramètres d’application

  3. Sous AzureWebJobsStorage, copiez la valeur de chaîne Distante vers Locale, puis sélectionnez OK.

La liaison de stockage qui utilise le paramètre AzureWebJobsStorage pour la connexion peut désormais se connecter à votre stockage File d’attente lors de l’exécution en local.

Inscrire des extensions de liaison

Comme vous utilisez une liaison de sortie stockage de file d’attente, l’extension de liaisons de stockage doit être installée avant d’exécuter le projet. À l’exception des déclencheurs HTTP et de minuteur, les liaisons sont implémentées en tant que packages d’extension.

  1. Dans le menu Outils, sélectionnez Gestionnaire de package NuGet>Console du Gestionnaire de package.

  2. Dans la console, exécutez la commande Install-Package suivante pour installer les extensions de stockage :

    Install-Package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
    

Vous pouvez maintenant ajouter la liaison de sortie de stockage à votre projet.

Ajouter une liaison de sortie

Dans un projet C#, les liaisons sont définies comme des attributs de liaison sur la méthode de fonction. Les définitions spécifiques varient selon que votre application s’exécute in-process (bibliothèque de classes C#) ou dans un processus Worker isolé.

Ouvrez le fichier projet HttpExample.cs et ajoutez la classe MultiResponse suivante :

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public HttpResponseData HttpResponse { get; set; }
}

La classe MultiResponse vous permet d’écrire dans une file d’attente de stockage nommée outqueue et dans un message de réussite HTTP. Plusieurs messages peuvent être envoyés à la file d’attente comme l’attribut QueueOutput est appliqué à un tableau de chaînes.

La propriété Connection définit la chaîne de connexion pour le compte de stockage. Dans ce cas, vous pourriez omettre Connection, car vous utilisez déjà le compte de stockage par défaut.

Ajouter le code qui utilise la liaison de sortie

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. 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. La liaison de sortie de file d’attente et le runtime Functions effectuent ces tâches.

Remplacez la classe existante HttpExample par le code suivant :

    [Function("HttpExample")]
    public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
        FunctionContext executionContext)
    {
        var logger = executionContext.GetLogger("HttpExample");
        logger.LogInformation("C# HTTP trigger function processed a request.");

        var message = "Welcome to Azure Functions!";

        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString(message);

        // Return a response to both HTTP trigger and storage output binding.
        return new MultiResponse()
        {
            // Write a single message.
            Messages = new string[] { message },
            HttpResponse = response
        };
    }
}

Exécuter la fonction localement

  1. Pour exécuter votre fonction, appuyez sur F5 dans Visual Studio. Vous devez peut-être activer une exception de pare-feu afin de permettre aux outils de prendre en charge les requêtes HTTP. Les niveaux d’autorisation ne sont jamais appliqués quand vous exécutez une fonction localement.

  2. Copiez l’URL de votre fonction à partir de la sortie runtime Azure Functions.

    Azure runtime local

  3. Collez l’URL de la requête HTTP dans la barre d’adresse de votre navigateur, puis exécutez la requête. L’image suivante montre la réponse dans le navigateur à la requête GET locale retournée par la fonction :

    Réponse de la fonction localhost dans le navigateur

  4. Pour arrêter le débogage, appuyez sur Maj+F5 dans Visual Studio.

Une nouvelle file d’attente nommée outqueue est créée dans votre compte de stockage par le runtime Functions lors de la première utilisation de la liaison de sortie. Vous allez utiliser l’Explorateur Stockage pour vérifier que la file d’attente a été créée ainsi que le nouveau message.

Connecter l’Explorateur Stockage à votre compte

Ignorez cette section si vous avez déjà installé l’Explorateur Stockage Azure et si vous l’avez connecté à votre compte Azure.

  1. Exécutez l’outil Explorateur Stockage Azure, sélectionnez l’icône de connexion sur la gauche, puis Ajouter un compte.

    Capture d’écran montrant comment 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....

    Capture d’écran de la fenêtre de connexion à votre compte Azure.

Une fois connecté à votre compte, vous voyez tous les abonnements Azure associés à votre compte. Choisissez votre abonnement et sélectionnez Ouvrir Explorateur.

Analyser la file d’attente de sortie

  1. Dans Explorateur Stockage, développez le nœud Files d’attente, puis sélectionnez la file d’attente nommée 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. 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.

    Capture d’écran du message de la file d’attente affiché dans l’Explorateur Stockage Azure.

  2. Réexécutez la fonction et envoyez une autre demande : vous voyez alors un nouveau message dans la file d’attente.

À présent, il est temps de republier sur Azure l’application de fonction mise à jour.

Redéployer et tester l’application mise à jour

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, sélectionnez Publier, puis choisissez Publier pour republier le projet sur Azure.

  2. Une fois le déploiement terminé, vous pouvez à nouveau utiliser le navigateur pour tester la fonction redéployée. Comme précédemment, ajoutez la chaîne de requête &name=<yourname> à l’URL.

  3. 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.

Nettoyer les ressources

Les autres démarrages rapides de cette collection reposent sur ce démarrage rapide. Si vous envisagez d’utiliser d’autres guides de démarrage rapide ou tutoriels, ou l’un des services que vous avez créés dans ce guide de démarrage rapide, ne supprimez pas les ressources.

Ressources dans Azure fait référence aux applications de fonction, fonctions, comptes de stockage, et ainsi de suite. Elles sont rassemblées en groupes de ressources, et vous pouvez supprimer tous les éléments d’un groupe en supprimant le groupe.

Vous avez créé des ressources pour effectuer ces démarrages rapides. Vous pouvez être facturé pour ces ressources en fonction de l’état de votre compte et de la tarification du service. Si vous n’avez plus besoin des ressources, voici comment les supprimer :

  1. Dans le portail Azure, accédez à la page Groupe de ressources.

    Pour accéder à cette page à partir de la page de l’application de fonction, sélectionnez l’onglet Vue d’ensemble, puis le lien situé sous Groupe de ressources.

    Capture d’écran montrant la sélection du groupe de ressources à supprimer sur la page de l’application de fonction.

    Pour accéder à la page à partir du tableau de bord, sélectionnez Groupes de ressources, puis le groupe de ressources que vous avez utilisé pour cet article.

  2. Dans la page Groupe de ressources, passez en revue la liste des ressources incluses et vérifiez qu’elles correspondent à celles que vous souhaitez supprimer.

  3. Sélectionnez Supprimer le groupe de ressources et suivez les instructions.

    La suppression peut prendre quelques minutes. Une fois terminée, une notification s’affiche pendant quelques secondes. Vous pouvez également sélectionner l’icône représentant une cloche en haut de la page pour afficher la notification.

Étapes suivantes

Vous avez mis à jour votre fonction déclenchée via HTTP pour écrire des données dans une file d’attente de stockage. Pour plus d’informations sur le développement de fonctions, voir Développer des fonctions Azure Functions avec Visual Studio.

Ensuite, vous devez activer la supervision Application Insights pour votre application de fonction :