Comment utiliser les packages NuGet dans mes fonctions Azure?

À l’aide des fonctions Azure , puis-je référencer et utiliser les packages NuGet dans ma fonction C #?

Oui! Bien que le portail Azure Functions ne fournisse pas actuellement de mécanisme pour append et gérer les packages NuGet, le moteur d’exécution prend en charge les références NuGet et s’assure qu’ils sont correctement utilisés lors de la compilation et de l’exécution de vos fonctions.

Afin de définir vos dépendances, vous devez créer un fichier Project.json avec les références de package NuGet requirejses. Voici un exemple qui ajoute une référence à Microsoft.ProjectOxford.Face version 1.1.0:

 { "frameworks": { "net46":{ "dependencies": { "Microsoft.ProjectOxford.Face": "1.1.0" } } } } 

Le portail Azure Functions offre un moyen pratique de gérer vos fichiers de fonctions, que nous pouvons utiliser pour créer (ou télécharger) notre project.json :

  1. Dans la section de développement de la fonction, cliquez sur Afficher les fichiers
  2. Cliquez sur l’option pour créer un fichier (vous pouvez également cliquer sur l’option pour télécharger un fichier si vous avez un fichier project.json créé précédemment sur votre ordinateur).
  3. Nommez le fichier project.json et définissez vos références de package (vous pouvez utiliser l’exemple ci-dessus comme modèle).

Le processus de restauration du paquet commence et vous devriez voir un résultat similaire à celui-ci dans votre fenêtre de journal:

 2016-04-04T19:02:48.745 Restoring packages. 2016-04-04T19:02:48.745 Starting NuGet restore 2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'. 2016-04-04T19:02:50.261 Feeds used: 2016-04-04T19:02:50.261 C:\DWASFiles\Sites\facavalfunctest\LocalAppData\NuGet\Cache 2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json 2016-04-04T19:02:50.261 2016-04-04T19:02:50.511 Restoring packages for D:\home\site\wwwroot\HttpTriggerCSharp1\Project.json... 2016-04-04T19:02:52.800 Installing Newtonsoft.Json 6.0.8. 2016-04-04T19:02:52.800 Installing Microsoft.ProjectOxford.Face 1.1.0. 2016-04-04T19:02:57.095 All packages are compatible with .NETFramework,Version=v4.6. 2016-04-04T19:02:57.189 2016-04-04T19:02:57.189 2016-04-04T19:02:57.455 Packages restored. 

Comme prévu, le moteur d’exécution Azure Functions ajoute automatiquement les références aux assemblys de package, vous n’avez donc pas besoin d’append explicitement des références d’assembly à l’aide de #r "AssemblyName" , vous pouvez simplement append les instructions requirejses à votre fonction et utiliser les types définis dans le package NuGet que vous avez référencé.

Options de déploiement supplémentaires

Azure Functions étant basé sur App Services, vous avez également access à toutes les options de déploiement disponibles pour les applications Web Azure standard (sites Web Azure).

Voici quelques exemples:

Utiliser App Service Editor (Monaco)

Afin de gérer vos fichiers directement depuis votre navigateur à l’aide de l’App Service Editor (Monaco):

  • Sur le portail Fonctions Azure, cliquez sur Function app settings
  • Dans la section Paramètres avancés , cliquez sur Go to App Service Settings
  • Cliquez sur le bouton Tools
  • Sous Développer , cliquez sur App Service Editor
  • Activez-le s’il n’est pas déjà activé et cliquez sur Go
  • Une fois qu’il est chargé, faites glisser votre fichier project.json dans le dossier de votre fonction (le dossier nommé d’après votre fonction).

Utiliser le noeud final SCM (Kudu)

  • Accédez à: https://.scm.azureewebsites.net
  • Cliquez sur la console de débogage> CMD
  • Accédez à D:\home\site\wwwroot\
  • Glissez-déposez votre fichier Project.json dans le dossier (sur la grid de fichiers)

FTP

Intégration continue

Si vous activez l’continuous integration et déployez votre fonction avec un fichier project.json lorsque votre application fonctionnelle n’est pas en cours d’exécution, la restauration du package se fera automatiquement une fois l’initialisation de l’application fonctionnelle terminée. Il est recommandé de ne pas append votre fichier project.lock.json au contrôle de source.

Assemblages pré-compilés

Les fonctions peuvent également être déployées en tant qu’assemblages pré-compilés et, dans ce cas, toute la gestion des dépendances est gérée dans Visual Studio. Cette option peut être utilisée comme bibliothèque de classe standard sur toute version de Visual Studio ou à l’aide des outils de fonctions Visual Studio 2017 Azure .

Vous pouvez utiliser les packages Nuget dans vos fonctions Azure. Le moyen le plus simple sera d’utiliser Visual Studio 2017 15.4, où il existe un modèle pour les fonctions Azure. Suivez les étapes ci-dessous

1) Ajouter un projet de fonction Azure: Faites un clic droit sur la solution et sélectionnez Ajouter un nouveau projet. Allez dans l’option CLOUD, vous trouverez le projet “Fonction Azure”.

Fonction Azure

2) Maintenant, c’est joli d’append un paquet Nuget. Développez “DEPENDENCIES” et faites un clic droit pour sélectionner l’option “Manage Nuget Packages”. La boîte de dialog Nuget Package apparaîtra, sélectionnez le package Nuget que vous souhaitez installer. Voir la capture d’écran ci-dessous

3) Maintenant, publiez votre fonction Azure, Visual Studio prendra en charge tous les parameters, etc.

Cette méthode ne fonctionnera que si vous utilisez Visual Studio 2017 15.4 ou supérieur, sinon vous devrez suivre d’autres méthodes, comme expliqué par d’autres.

Notez que le nouveau format .csproj dans Visual Studio 2017 est également pris en charge. Si vous créez votre projet en tant que projet Web ASPNET, le moteur d’exécution Azure Functions télécharge tous les packages nuget nécessaires avant de créer votre projet.