Como Crear una Función de Azure (I) - Blog de David Alonso. Microsoft SharePoint, Office 365, Azure y otras tecnologías Microsoft

Blog de David Alonso. Microsoft SharePoint, Office 365, Azure y otras tecnologías Microsoft

Microsoft SharePoint, Azure, Office 365

lunes, 12 de agosto de 2019

Como Crear una Función de Azure (I)


Antes de comenzar, vamos a hacer una pequeña introducción a Funciones de Azure o Azure Functions. 

Una Azure Function es una solución que nos proporciona Microsoft para ejecutar un trozo de código en la nube sin necesidad de disponer de un servidor o una infraestructura para alojar ese código. Además, permite desarrollar en varios lenguajes de programación no solamente en C# o código .NET de Microsoft.

Aquí algunas características de las funciones de Azure sacadas de la documentación de Microsoft:

  • Opción de lenguaje: escriba funciones usando el lenguaje C#, Java, Javascript, Python u otro de su elección. Consulte Lenguajes admitidos para ver la lista completa.
  • Modelo de precios de pago por uso : pague solo el tiempo que haya empleado ejecutando el código. 
Esta es una gran ventaja a la hora de desarrollar una solución para sus clientes puesto que se paga por uso, es decir, el plan de consumo de Azure Functions se factura en función del consumo de recursos y las ejecuciones por segundo. Los precios del plan de consumo incluyen una concesión gratuita mensual de 1 millones de solicitudes de forma que es probable que disponga de Funciones de Azure que salgan prácticamente gratis.


  • Utilizar sus propias dependencias : Funciones de Azure admite NuGet y NPM, para que pueda usar sus bibliotecas. De esta forma, mediante una función de Azure podremos desarrollar un componente que se integre con cualquier entorno utilizando dlls que desarrollemos nosotros mismos. 
  • Seguridad integrada : proteja las funciones desencadenadas por HTTP con los proveedores de OAuth como Azure Active Directory, Facebook, Google, Twitter y cuenta Microsoft.
  • Integración simplificada : fácil aprovechamiento de los servicios de Azure y ofertas de software como servicio (SaaS).
  • Desarrollo flexible: codifique las funciones directamente en el portal o configure la integración continua e implemente el código mediante GitHub, Azure DevOps Services y otras herramientas de desarrollo compatibles.
  • Código abierto : el tiempo de ejecución de Funciones de Azure es de código abierto y está disponible en GitHub.


A continuación, vamos a ver un ejemplo de como crear una Función de Azure desde el portal web.  Para comenzar, entrar en la url https:\\ portal.azure.com con un administrador global de su subscripción de Azure.

Lo primero que hay que hacer es crear el Funcion App, que es un contenedor de aplicaciones donde se alojarán las funciones de Azure. En un Function App puede alojarse más de una función diferente y dispondrá de más de una

En el menú lateral izquierdo del portal de Azure, se ofrece un vínculo a App Services. Al hacer clic en este vínculo, se accede a una página de introducción donde se visualizan las aplicaciones de servicio (App services) existentes.



En la barra de herramientas superior se dispone de una acción (botón Agregar) que permite habilitar un nuevo formulario donde se indica el tipo de Web Apps que se desea crear. En este caso se selecciona el tipo FunctionApp.


Al presionar este tipo, se habilita un nuevo formulario de confirmación haciendo clic sobre el botón Crear.




A continuación, se habilita otro formulario donde se introducen los datos de la App service que se desea crear:
  • Nombre de aplicación: Se indica un nombre. Para este nombre se asignará una url nombre.azurewebsites.net por lo que deberá ser un nombre indicativo y que no se vaya a usar más. 
  • Suscripción: se selecciona la suscripción de Azure disponible.
  • Grupo de recursos: se mantiene el check Crear nuevo con el nombre que ofrece por defecto. Para próximas aplicaciones de servicio (app services) que se creen, puede reutilizarse seleccionando Usar existente.
  • OS: Windows. 
  • Plan de hospedaje: Plan de consumo.
  • Ubicación: Oeste de Europa.
  • Pila en tiempo de ejecución: .NET.
  • Storage: se mantiene el check Crear nuevo con el nombre que ofrece por defecto. Para próximas aplicaciones de servicio (app services) que se creen, puede reutilizarse seleccionando Usar existente.
  • Application Insights: se mantiene el nombre que ofrece por defecto.




Presionando sobre el botón Crear - ubicado en la parte inferior del formulario - se crea la aplicación de servicio (App service).


Ahora Crearemos una Función de Azure y le añadiremos algo de código. Lo primero que deberemos de saber es que hay diferentes tipos de funciones de Azure. Aquí hay una entrada donde se explican los diferentes tipos de funciones de Azure. 

Crearemos una Función de tipo HTTP. Esta función se ejecutará cuando entre una petición HTTP. Puede ser útil para comunicar o integrar entornos y utilizarse como una API REST.
Para ello, dentro de la Function App, en RFunctions, hacer clic en el simbolo + para crear una nueva Función de Azure.



Seleccionar WebHook + API y hacer clic en Crear.

La función ya está creada, se puede previsualizar el código que ya se crea por defecto.





Se puede ejecutar la función de Azure desde el propio portal de Azure. En la función,  hay un botón de Ejecutar.


Para ejecutar la función desde el navegador, se puede obtener su url y meterla en el navegador. Para ello, hay un link Obtener url, situado justo al lado del botón de Ejecutar.


En la parte inferior de la función de Azure, hay un apartado Registros o Logs donde se pueden ver todas las lineas de log que se han introducido en el código mediante la sentencia:

 log.Info("Texto a introducir en el log");

o mensajes de error:

 log.Error("Mensaje de error");

De esta forma se puede controlar los errores de la función de Azure mediante try/catch y mostrar en el log el error.



Según este ejemplo, podremos ejecutar código que se ejecutara mediante una llamada HTTP, de esta forma podremos por ejemplo introducir datos en una base de datos según los parámetros recibidos en la url u obtener un listado de elementos guardados en una base de datos o una lista.

En el siguiente post sobre Funciones de Azure, crearemos una en Visual Studio para poder utilizar dlls externas y hacer algo de código mas complejo que este ejemplo. 



No hay comentarios:

Publicar un comentario