resource porta microsoft management c# azure azure-functions nuget-package azure-web-app-service

c# - microsoft - portal azure web



¿Cómo puedo usar los paquetes NuGet en mis funciones de Azure? (5)

¡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 usen correctamente al compilar y ejecutar sus funciones.

Para definir sus dependencias, debe 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 :

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

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

Opciones de implementación adicionales

Dado que Azure Functions se basa en App Services, 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 del editor de App Service (Mónaco)

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

  • En el portal de 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 Desarrollar , haga clic en Editor del Servicio de aplicaciones
  • 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 que lleva el nombre de su función.

Uso del punto final SCM (Kudu)

  • Navegue a: https://<function_app_name>.scm.azurewebsites.net
  • Haga clic en Consola de depuración> CMD
  • Navegue a D:/home/site/wwwroot/<function_name>
  • 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 e implementa 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 origen.

Ensambles 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 las herramientas de funciones de Azure de Visual Studio 2017 .

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


Este hilo me ayudó mucho, pero aún perdí algunas horas tratando de hacer que el Project.json funcionara, pero fue en vano.

Si realiza 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 el nombre function.proj . Este archivo tiene una estructura XML para importar bibliotecas a través de Nuget.

Aquí está mi ejemplo importando el SDK de Amazon S3 para .Net;

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="AWSSDK.S3" Version="3.3.26.3"/> <PackageReference Include="AWSSDK.Core" Version="3.3.29.1"/> </ItemGroup> </Project>

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 llevó unas pocas horas descubrirlo. Así que espero que esto ayude a alguien.


Puede usar los 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. Sigue 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 CLOUD allí encontrará el proyecto "Azure Function".

2) Ahora es bonito agregar cualquier paquete Nuget. Expanda "DEPENDENCIAS" y haga clic derecho sobre ella 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 Azure, Visual Studio se encargará de todas las configuraciones, etc.

Este método solo funcionará si usa Visual Studio 2017 15.4 o superior, de lo contrario, tendrá que seguir otras formas según lo explicado por otros.


Supongamos que queremos usar el cliente SFTP, que es una biblioteca externa, almacenada en algún lugar de NuGet.

Para lograrlo, de acuerdo con la última especificación de Azure Functions, haga lo siguiente:

  1. Abra la sección de archivos dentro de su Función Azure y agregue un nuevo archivo llamado function.proj .

    Para obtener más información, consulte la documentation Microsoft.

  1. Dentro de esa función.proj coloque la referencia del paquete Nuget usando la estructura XML (el mismo tipo de estructura que puede encontrar dentro del archivo *.csproj si crea un proyecto local con Visual Studio e instala algún paquete NuGet en él).

  1. A continuación, incluyamos la referencia de la biblioteca al proyecto:

    Lo esencial aquí es que debe proporcionar una ruta completa a la biblioteca, como en el ejemplo que puede ver: "D:/home/site/wwwroot/bin/your_custom_library.dll"

  1. A continuación, pruebe un código específico de la biblioteca:
  1. Finalmente, abra la sección Registros y guarde el código. Después de un tiempo, debería ver los paquetes de NuGet restaurando el registro.

    Nota: estos registros también pueden aparecer al guardar el archivo function.proj o al ejecutar el proyecto.

En caso de que la biblioteca siga apareciendo como desconocida, intente agregar sus Dll manualmente en la carpeta bin usando Azure Cloud explorer de Visual Studio.


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