Saltar al contenido

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

Este team de especialistas despúes de ciertos días de investigación y recopilar de datos, obtuvieron la solución, queremos que te resulte útil en tu trabajo.

Solución:

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

Para definir sus dependencias, necesita crear un Project.json archivo con las referencias del paquete NuGet requeridas. 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 de Azure Functions proporciona una forma conveniente de administrar sus archivos de función, que podemos usar para crear (o cargar) nuestro project.json:

  1. En la función desarrollar sección, haga clic en archivos de vista
  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 creado previamente project.json archivo en su máquina
  3. Nombra el archivo project.json y defina las referencias de su paquete (puede usar el ejemplo anterior como plantilla).

El proceso de restauración del paquete comenzará y debería ver un resultado similar al siguiente en la ventana de registro:

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)MSBuild14.0bin'.
2016-04-04T19:02:50.261 Feeds used:
2016-04-04T19:02:50.261 C:DWASFilesSitesfacavalfunctestLocalAppDataNuGetCache
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:homesitewwwrootHttpTriggerCSharp1Project.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.

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 mediante #r "AssemblyName", puede agregar el requerido using declaraciones a su función y use los tipos definidos en el paquete NuGet al que ha hecho referencia.

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 de Azure (sitios web de Azure).

Aquí hay unos ejemplos:

Uso de App Service Editor (Mónaco)

Para administrar sus archivos directamente desde su navegador usando el App Service Editor (Mónaco):

  • En el portal de Azure Functions, haga clic en Function app settings
  • Bajo la Ajustes avanzados sección, haga clic en Go to App Service Settings
  • Clickea en el Tools botón
  • Bajo Desarrollar, haga clic en Editor del servicio de aplicaciones
  • Convertirlo On si aún no está habilitado y haga clic en Go
  • Una vez que se cargue, arrastre y suelte su project.json archivo en la carpeta de su función (la carpeta que lleva el nombre de su función.

Usando el punto final SCM (Kudu)

  • Navegar a: https://.scm.azurewebsites.net
  • Haga clic en Consola de depuración> CMD
  • Navegar a D:homesitewwwroot
  • Arrastra y suelta tu Project.json archivo en la carpeta (en la cuadrícula de archivos)

FTP

  • Siga las instrucciones aquí para configurar FTP
  • Una vez conectado (siguiendo las instrucciones anteriores) copie su Project.json archivo a /site/wwwroot/

    Para obtener opciones de implementación adicionales, consulte: https://azure.microsoft.com/en-us/documentation/articles/web-sites-deploy/

Integración continua

Si habilita la integración continua e implementa su función con una project.json archivo cuando su aplicación de función no se está ejecutando, la restauración del paquete se producirá automáticamente una vez que se inicialice su aplicación de función. Se recomienda que no Agrega tu project.lock.json archivo al control de origen.

Ensamblados precompilados

Las funciones también se pueden implementar como ensamblados precompilados y, en este caso, toda la administración de dependencias se maneja en Visual Studio. Esta opción se puede usar como bibliotecas de clases estándar en cualquier versión de Visual Studio o mediante Visual Studio 2017 Azure Functions Tools.

Este hilo me ayudó mucho, pero todavía perdí algunas horas tratando de que Project.json funcionara, sin éxito.

Si crea una función de Azure en la versión 2.x, debe hacerlo de una manera diferente.

Cree un nuevo archivo como se indica, pero asígnele un nombre function.proj. Este archivo tiene una estructura XML para importar bibliotecas a través de Nuget.

Aquí está mi ejemplo de importación del SDK de Amazon S3 para .Net;



    netstandard2.0
  

  
    
    
  


al guardar esto, debería ver la actualización de la consola que indica que los paquetes se están instalando. Esto realmente no está bien documentado y me tomó algunas horas descubrirlo. Así que espero que esto ayude a alguien.

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

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

Función Azure

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

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

Este método funcionará solo si usa Visual Studio 2017 15.4 o superior; de lo contrario, tendrá que seguir otras formas como lo explicaron otros.

Reseñas y puntuaciones del artículo

Nos encantaría que puedieras compartir este post si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *