À 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
:
project.json
créé précédemment sur votre ordinateur). 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é.
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:
Afin de gérer vos fichiers directement depuis votre navigateur à l’aide de l’App Service Editor (Monaco):
Function app settings
Go to App Service Settings
Tools
Go
project.json
dans le dossier de votre fonction (le dossier nommé d’après votre fonction). https://.scm.azureewebsites.net
D:\home\site\wwwroot\
Project.json
dans le dossier (sur la grid de fichiers) Une fois connecté (en suivant les instructions ci-dessus), copiez votre fichier Project.json
dans /site/wwwroot/
Pour des options de déploiement supplémentaires, consultez: https://azuree.microsoft.com/en-us/documentation/articles/web-sites-deploy/
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.
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”.
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.