
En noviembre, di una charla en Live! 360 sobre cómo crear un consumidor de webhook básico utilizando Azure Functions. Esta publicación de blog recapitularemos esa charla y destilaré las cosas para que entiendas los conceptos básicos de Azure Functions.
Interfaz de Webhook de Azure Functions
En noviembre, di una charla en Live! 360 sobre cómo crear un consumidor básico de webhook utilizando Azure Functions. Esta publicación en el blog recapitulá esa charla y destilará las cosas para que puedas entender los conceptos básicos de Azure Function, y expandir la solución de framework encontrada en Github.
¿Qué son los Webhooks?
¿Por qué serverless functions?
Las funciones sin servidor son una gran innovación para ayudar a implementar soluciones rápidamente mientras se reduce la carga para las organizaciones. La ausencia de hardware que mantener es un gran beneficio, y las funciones sin servidor pueden manejar flujos de tráfico impredecibles. Son fáciles de implementar y actualizar, por lo que puedes empezar a funcionar rápidamente.
¡Sinergia!
La combinación de webhooks y funciones sin servidor facilita mucho la creación de ecosistemas ricos para la automatización o la interacción con el usuario. Poder impulsar los eventos y datos generados por todos estos sistemas dispares elimina la necesidad de middleware complicado, a la vez que facilita la incorporación de código y eventos personalizados.
Azure Functions Basics
Azure Functions se pueden crear a través del Azure Console o Visual Studio. Recomiendo que pruebes ambos para que estés familiarizado con las experiencias. Una de las cosas buenas de crear algo en el Azure Console es que puedes descargar la función de Azure resultante como un archivo de solución de Visual Studio. Visual Studio es la misma conocida experiencia de IDE fuerte que conoces y amas.
Hay ventajas en ambos métodos. El console de Azure Function te da acceso directo para controlar los parámetros de la operación de la función desde los recursos disponibles hasta límites de uso mensual para control de costos. Todas estas opciones pueden configurarse y manipularse desde Visual Studio a través del archivo host.json y de las variables de entorno.
Creating a Basic Webhook Consumer
Paso 1
Crea una nueva solución de Visual Studio y agrega un nuevo proyecto a esa solución.

Paso 2
Haz clic derecho en el nodo del proyecto y añade un nuevo elemento. Elige Azure Function.

Paso 3
Ahora tienes un proyecto de Visual Studio con el que estás muy familiarizado. Deberías tener una plantilla para una función básica de Azure en C#. Es hora de construir algo de código para consumir tu webhook.

Paso 4
Depura localmente. Así es, puedes depurar esto localmente con todas las herramientas conocidas de depuración e introspección de Visual Studio. Presta atención a la consola de depuración, ya que contiene mucha información valiosa sobre cada llamada que realices a tu función durante las pruebas locales.

Paso 5
Publica la Azure Function. Haz clic derecho en el nodo del proyecto y selecciona Publicar. Escoge Azure Function y Crear Nuevo. Nota que también podrías actualizar una función existente. La función ahora aparecerá en tu consola de Azure.

Posibles Pitfalls
La trampa más común que afecta a las personas al trabajar con el consumo de webhooks y funciones sin servidor es que la función se ejecuta demasiado tiempo. Esto hace que la función se vuelva muy costosa o falle por completo porque el POST del webhook se agota. Hay algunas cosas que puedes hacer para mediar estos problemas.
Los consumidores de webhooks deberían funcionar de forma asíncrona. Los datos deben ser ingeridos lo más rápido posible y luego procesados. El error de diseño común es intentar procesar los datos en tiempo real a medida que llegan. Esto funciona mientras los datos tengan un tamaño consistente y pequeño, pero si el tamaño de los datos puede aumentar o ser inconsistente, es mejor asegurarse de que los datos sean recibidos y se responda a la solicitud HTTP para que no ocurran interrupciones.
Otra cosa que puede ayudar a mitigar los procesos de larga duración es almacenar los datos enviados y usar la función sin servidor para iniciar un proceso en contenedores utilizando servicios como Azure Container Services (AKS) para manejar las partes de larga duración. Con este diseño, la función sin servidor debería activar y olvidar el contenedor, permitiendo que el contenedor publique sus resultados ya sea en un registro o en algún otro servicio de notificación de tu elección. Esto mantiene la función sin servidor lo más breve posible mientras se permite que ocurra un procesamiento complicado.
Encendamos esta vela
Ahí lo tienes. Ahora puedes continuar y crear tu propio ecosistema rico utilizando funciones serverless y webhooks. A continuación, se encuentra una lista de otros recursos para ayudarte a profundizar en Azure Functions.
-Nick Zimmerman
ps – a continuación se presentan algunos recursos adicionales sobre Azure functions que podrías encontrar interesantes – ¡disfruta!