Démarrage rapide : Créer votre première fonction C# dans Azure à l’aide de Visual Studio

Azure Functions vous permet d’utiliser Visual Studio pour créer des projets de fonction C# locaux, puis de publier facilement ce projet pour s’exécuter dans un environnement serverless évolutif dans Azure. Si vous préférez développer vos applications C# localement à l’aide de Visual Studio Code, vous devez plutôt envisager la version Visual Studio basée sur le code de cet article.

Par défaut, cet article vous montre comment créer des fonctions C# qui s’exécutent sur .NET 6 dans le même processus que l’hôte Functions. Ces fonctions C# in-process sont prises en charge uniquement sur les versions de support à long terme (LTS) de .NET, telles que .NET 6. Lors de la création de votre projet, vous pouvez choisir de créer une fonction qui s’exécute sur .NET 6 dans un processus Worker isolé. Le processus Worker isolé prend en charge les versions LTS et STS (Standard Term Support) de .NET. Pour plus d’informations, consultez Versions prises en charge dans le guide du processus Worker isolé .NET Functions.

Dans cet article, vous apprendrez comment :

  • Utiliser Visual Studio pour créer un projet de bibliothèque de classes C#.
  • Créer une fonction qui répond à des requêtes HTTP.
  • Exécuter votre code localement pour vérifier le comportement de la fonction.
  • Déployer votre projet de code sur Azure Functions.

Le fait de suivre ce guide de démarrage rapide entraîne une petite dépense de quelques cents USD tout au plus dans votre compte Azure.

Prérequis

Créer un projet d’application de fonction

Le modèle de projet Azure Functions dans Visual Studio crée un projet de bibliothèque de classe C# que vous pouvez publier dans une application de fonction dans 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.

  1. Dans le menu de Visual Studio, sélectionnez Fichier>Nouveau>Projet.

  2. Dans Créer un projet, entrez functions dans la zone de recherche, choisissez le modèle Azure Functions, puis sélectionnez Suivant.

  3. Dans Configurer votre nouveau projet, entrez un Nom de projet, puis sélectionnez Suivant. 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.

  4. Dans Informations supplémentaires, choisissez l’une des options suivantes pour Fonctions worker :

    Runtime .NET Modèle de processus Description
    .NET 6.0 (prise en charge à long terme) In-process Les fonctions C# In-process sont prises en charge uniquement sur les versions de .NET avec prise en charge à long terme (LTS). Le code de fonction s’exécute dans le même processus que l’hôte Functions.
    .NET 6.0 isolé (prise en charge à long terme) Processus de travail isolé Les fonctions s’exécutent sur .NET 6, mais dans un processus distinct de l’hôte Functions.
    .NET 7.0 isolé Processus de travail isolé Étant donné que .NET 7 n’est pas une version LTS de .NET, vos fonctions doivent s’exécuter dans un processus isolé sur .NET 7.
    .NET Framework isolé v4 Processus de travail isolé Choisissez cette option quand vos fonctions doivent utiliser des bibliothèques uniquement prises en charge sur le .NET Framework.
    .NET Core 3.1 (prise en charge à long terme) In-process .NET Core 3.1 n’est plus une version prise en charge de .NET et n’est pas pris en charge par Functions version 4.x. Utilisez .NET 6.0 à la place.
    .NET Framework v1 In-process Choisissez cette option quand vos fonctions doivent utiliser des bibliothèques uniquement prises en charge sur des versions antérieures de NET Framework. Nécessite la version 1.x du runtime Functions.

    Les deux modèles de processus utilisent des API différentes et chaque modèle de processus utilise un modèle différent pour la génération du code du projet de fonction. Si vous ne voyez pas d’options pour .NET 6.0 et des versions ultérieures du runtime .NET, vous devrez peut-être mettre à jour l’installation de vos outils Azure Functions.

  5. Pour les paramètres Informations supplémentaires restants, utilisez les valeurs du tableau suivant :

    Paramètre Valeur Description
    Fonction Déclencheur HTTP Cette valeur crée une fonction déclenchée par une requête HTTP.
    Utiliser Azurite pour le compte de _storage du runtime (AzureWebJobsStorage) Activer Étant donné qu’une application de fonction dans Azure nécessite un compte de stockage, celui-ci est attribué ou créé quand vous publiez votre projet sur Azure. Un déclencheur HTTP n’utilise pas de chaîne de connexion de compte Stockage Azure ; tous les autres types de déclencheurs nécessitent une chaîne de connexion de compte Stockage Azure valide. Lorsque vous sélectionnez cette option, l’émulateur Azurite est utilisé.
    Niveau d’autorisation Anonyme La fonction créée peut être déclenchée par n’importe quel client sans fournir une clé. Ce paramètre d’autorisation facilite le test de votre nouvelle fonction. Pour plus d’informations sur les clés et autorisations, consultez Clés d’autorisation et Liaisons HTTP et webhook.

    Capture d’écran des paramètres de projet Azure Functions.

    Veillez à définir le Niveau d’autorisation sur Anonyme. Si vous choisissez le niveau par défaut Fonction, vous êtes invité à présenter la clé de fonction dans les requêtes d’accès à votre point de terminaison de fonction dans Azure.

  6. Sélectionnez Créer pour créer le projet de fonction et la fonction de déclencheur HTTP.

Visual Studio crée un projet et une classe qui contient un code réutilisable pour le type de fonction de déclencheur HTTP. Le code réutilisable envoie une réponse HTTP qui inclut une valeur de la chaîne de requête ou du corps de requête. L’attribut HttpTrigger spécifie que l’exécution de la fonction est déclenchée par une requête HTTP.

Renommer la fonction

L’attribut de méthode FunctionName définit le nom de la fonction qui, par défaut, est Function1. Comme les outils ne vous permettent pas de remplacer le nom de fonction par défaut quand vous créez votre projet, prenez une minute pour attribuer un nom plus approprié à la classe de fonction, au fichier et aux métadonnées.

  1. Dans l’Explorateur de fichiers, cliquez avec le bouton droit sur le fichier Function1.cs et renommez-le HttpExample.cs.

  2. Dans le code, renommez la classe Function1 en HttpExample.

  3. Dans la méthode HttpTrigger nommée Run, renommez l’attribut de méthode FunctionName en HttpExample.

Votre définition de fonction doit maintenant ressembler au code suivant :

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

Maintenant que vous avez renommé la fonction, vous pouvez la tester sur votre ordinateur local.

Exécuter la fonction localement

Visual Studio s’intègre à Azure Functions Core Tools pour vous permettre de tester vos fonctions en local avec le runtime Azure Functions complet.

  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 demande HTTP dans la barre d’adresses de votre navigateur. Ajoutez la chaîne de requête ?name=<YOUR_NAME> à cette URL et exécutez la demande. 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.

Après avoir vérifié que la fonction s’exécute correctement sur votre ordinateur local, il est temps de publier le projet sur Azure.

Publication du projet sur Azure

Visual Studio permet de publier votre projet local sur Azure. Avant de pouvoir publier votre projet, vous devez disposer d’une application de fonction dans votre abonnement Azure. Si vous n'avez pas encore d'application de fonction dans Azure, Visual Studio en crée une pour vous la première fois que vous publiez votre projet. Dans cet article, vous créez une application de fonction et les ressources Azure associées.

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

    Capture d’écran de la fenêtre de publication.

  2. Sélectionnez Azure Function App (Windows) pour la cible spécifique, qui crée une application de fonction qui s’exécute sur Windows, puis sélectionnez Suivant.

    Capture d’écran de la fenêtre de publication avec une cible spécifique.

  3. Dans Instance de la fonction, choisissez Créer une application Azure Function....

    Capture d’écran de la création d’une nouvelle instance d’application de fonction.

  4. Créez une instance en utilisant les valeurs spécifiées dans le tableau suivant :

    Paramètre Valeur Description
    Nom Nom globalement unique Nom qui identifie uniquement votre nouvelle application de fonction. Acceptez ce nom ou entrez un nouveau nom. Les caractères valides sont a-z, 0-9 et -.
    Abonnement Votre abonnement Sélectionnez l’abonnement Azure à utiliser. Acceptez cet abonnement ou sélectionnez-en un nouveau dans la liste déroulante.
    Groupe de ressources Nom de votre groupe de ressources Groupe de ressources dans lequel vous souhaitez créer votre application de fonction. sélectionnez un groupe de ressources existant dans la liste déroulante ou sélectionnez Nouveau pour créer un groupe de ressources.
    Type de plan Consommation 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 de fonction. D’autres plans d’hébergement occasionnent des coûts plus élevés.
    Lieu Emplacement du service d’application Choisissez un Emplacement dans une région proche de chez vous, ou proche d’autres services auxquels vos fonctions ont accès.
    Stockage Azure Compte de stockage à usage général Un compte de stockage Azure est obligatoire par le runtime Functions. Sélectionnez Nouveau pour configurer un compte de stockage universel. Vous pouvez également choisir un compte existant qui répond aux exigences relatives aux comptes de stockage.

    Capture d’écran de la boîte de dialogue de création d’un service d’application.

  5. Sélectionnez Créer pour créer une application de fonction et les ressources associées dans Azure. L’état de la création des ressources est affiché en bas à gauche de la fenêtre.

  6. Dans Instance de fonction, assurez-vous que Exécuter à partir du fichier de package est coché. Votre application de fonction est déployée en utilisant Zip Deploy avec le mode Exécuter à partir du fichier de package activé. Zip Deploy est la méthode de déploiement recommandée pour votre projet Functions offrant de meilleures performances.

    Capture d’écran de la fin de la création du profil.

  7. Sélectionnez Terminer, puis dans la page Publier, sélectionnez Publier pour déployer le package contenant vos fichiers projet dans votre nouvelle application de fonction dans Azure.

    Une fois le déploiement terminé, l’URL racine de l’application de fonction dans Azure est affichée sous l’onglet Publier.

  8. Dans l’onglet Publier, dans la section Hébergement, choisissez Ouvrir dans le portail Azure. La nouvelle ressource Azure d’application de fonction est alors ouverte dans le portail Azure.

    Capture d’écran du message de réussite de la publication.

Vérifier votre fonction dans Azure

  1. Dans Cloud Explorer, votre nouvelle application de fonction doit être sélectionnée. Si ce n’est pas le cas, développez votre abonnement >App Services, puis sélectionnez votre nouvelle application de fonction.

  2. Cliquez avec le bouton droit sur l’application de fonction et choisissez Ouvrir dans le navigateur. Cela ouvre la racine de votre application de fonction dans votre navigateur web par défaut et affiche la page qui indique que votre application de fonction est en cours d’exécution.

    Application de fonction en cours d’exécution

  3. Dans la barre d’adresses du navigateur, ajoutez la chaîne /api/HttpExample?name=Functions à l’URL de base et exécutez la demande.

    L’URL qui appelle la fonction à déclencheur HTTP est au format suivant :

    http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. Accédez à cette URL pour voir dans le navigateur une réponse à la demande GET distante retournée par la fonction, qui ressemble à l’exemple suivant :

    Réponse de la fonction dans le navigateur

Nettoyer 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 Azure pour suivre ce guide de démarrage rapide. Vous pouvez être facturé pour ces ressources, en fonction de l’état de votre compte et de la tarification du service. 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.

Utiliser les étapes suivantes pour supprimer l’application de fonction et ses ressources connexes afin d’éviter des coûts supplémentaires.

  1. Dans le dialogue Publication Visual Studio, dans la section Hébergement, sélectionnez Ouvrir dans le portail Azure.

  2. Dans la page de l’application de fonction, sélectionnez l’onglet Vue d’ensemble, puis le lien sous Groupe de ressources.

    Sélectionner le groupe de ressources à supprimer dans la page de l’application de fonction

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

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

    Cette opération 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

Dans ce guide de démarrage rapide, vous avez utilisé Visual Studio pour créer et publier une application de fonction C# dans Azure à l’aide d’une simple fonction à déclencheur HTTP.

L’article à consulter ensuite dépend du modèle de processus que vous avez choisi.

Pour en savoir plus sur l’utilisation des fonctions C# qui s’exécutent en cours avec l’hôte Functions, consultez Développer des fonctions de bibliothèque de classes C# à l’aide d’Azure Functions.

Passez à l’article suivant pour savoir comment ajouter une liaison de file d’attente de stockage Azure à votre fonction :