¿Cómo puedo usar paquetes NuGet en mis funciones de Azure?

Usando Azure Functions , ¿puedo hacer referencia y usar paquetes NuGet en mi función C #?

¡Sí! Aunque el portal Azure Functions actualmente no proporciona un mecanismo para agregar y administrar paquetes NuGet, el tiempo de ejecución admite referencias NuGet y se asegurará de que se utilicen correctamente al comstackr y ejecutar sus funciones.

Para definir sus dependencias, necesita crear un archivo Project.json con las referencias requeridas del paquete NuGet. Aquí hay un ejemplo que agrega una referencia a Microsoft.ProjectOxford.Face versión 1.1.0:

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

El portal Azure Functions proporciona una forma conveniente de administrar sus archivos de funciones, que podemos usar para crear (o cargar) nuestro project.json . project.json :

  1. En la sección de desarrollo de la función, haga clic en Ver archivos
  2. Haga clic en la opción para crear un archivo (también puede hacer clic en la opción para cargar un archivo si tiene un archivo project.json creado previamente en su máquina
  3. Denomine el archivo project.json y defina las referencias de su paquete (puede usar el ejemplo anterior como plantilla).

Comenzará el proceso de restauración del paquete y verá una salida similar a la siguiente en su ventana de registro:

 2016-04-04T19:02:48.745 Restoring packages. 2016-04-04T19:02:48.745 Starting NuGet restre 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 restred. 

Como se esperaba, el tiempo de ejecución de Azure Functions agregará automáticamente las referencias a los ensamblados del paquete, por lo que NO es necesario que agregue explícitamente referencias de ensamblado con #r "AssemblyName" , solo puede agregar las instrucciones de using requeridas a su función y usar los tipos definidos en el paquete NuGet al que te has referido.

Opciones de implementación adicionales

Dado que Azure Functions se basa en los Servicios de aplicaciones, como alternativa a los pasos anteriores, también tiene acceso a todas las excelentes opciones de implementación disponibles para las aplicaciones web estándar Azure (sitios web Azure).

Aquí hay unos ejemplos:

Usando App Service Editor (Monaco)

Para gestionar sus archivos directamente desde su navegador utilizando App Service Editor (Monaco):

  • En el portal Azure Functions, haga clic en Function app settings
  • En la sección Configuración avanzada , haga clic en Go to App Service Settings
  • Haga clic en el botón Tools
  • En Develop , haz clic en App Service Editor
  • Actívelo si aún no está habilitado y haga clic en Go
  • Una vez que se carga, arrastre y suelte su archivo project.json en la carpeta de su función (la carpeta nombrada después de su función).

Usar punto final SCM (Kudu)

  • Navegue a: https://.scm.azurewebsites.net
  • Haga clic en Debug Console> CMD
  • Navegue a D:\home\site\wwwroot\
  • Arrastre y suelte su archivo Project.json en la carpeta (en la cuadrícula de archivos)

FTP

Integración continua

Si habilita la integración continua y despliega su función con un archivo project.json cuando su aplicación de función no se está ejecutando, la restauración del paquete se realizará automáticamente una vez que su aplicación de función se inicialice. Se recomienda que no agregue su archivo project.lock.json al control de fuente.

Conjuntos precomstackdos

Las funciones también se pueden implementar como ensamblados precomstackdos, y en este caso, toda la administración de la dependencia se maneja en Visual Studio. Esta opción se puede utilizar como bibliotecas de clases estándar en cualquier versión de Visual Studio o mediante el uso de las Herramientas de funciones de Azure de Visual Studio 2017 .

Puede usar paquetes de Nuget en sus Funciones de Azure. La manera más fácil será usar Visual Studio 2017 15.4 donde hay una plantilla para Funciones de Azure. Sigue los pasos a continuación

1) Agregar Proyecto de función Azure: haga clic con el botón derecho en la solución y seleccione Agregar nuevo proyecto. Vaya a la opción CLOUD allí encontrará el proyecto “Función Azure”.

Función Azure

2) Ahora es bonito agregar cualquier paquete de Nuget. Expande “DEPENDENCIAS” y haz clic derecho sobre él para seleccionar la opción “Administrar paquetes de Nuget”. Aparecerá el cuadro de diálogo Nuget Package, seleccione cualquier paquete Nuget que desee instalar. Ver la captura de pantalla a continuación

3) Ahora publique su función Azure, Visual Studio se encargará de todas las configuraciones, etc.

Este método funcionará solo si usa Visual Studio 2017 15.4 o superior, si no, tendrá que seguir otras formas explicadas por otros.

Tenga en cuenta que también se admite el nuevo formato .csproj en Visual Studio 2017. Si crea su proyecto como ASPNET Web Project, el tiempo de ejecución de Azure Functions descarga todos los paquetes nuget necesarios antes de construir su proyecto.