Cómo crear un consumidor Webhook básico con Azure Functions

Cómo crear un consumidor Webhook básico con Azure Functions

Cómo crear un consumidor Webhook básico con Azure Functions

Dec 20, 2017

Publicado por

Publicado por

Nick Zimmerman

Nick Zimmerman

-

Categoría:

Categoría:

Email

Email

Ready to see Bird
in action?

Ready to see Bird
in action?

How To Create A Basic Webhook Consumer With Azure Functions

Interfaz Azure Functions Webhook

In November, I gave a talk at ¡En directo! 360 on how to create a basic webhook consumer using Azure Functions. This blog post will recap that talk and distill things so that you will understand the basics of Azure Function, and extend the que se encuentra en Github.


¿Qué son los Webhooks?

Los webhooks son pequeñas cosas geniales proporcionadas por muchos servicios populares incluyendo SparkPos

t, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal y Salesforce. Los webhooks envían datos basados en un evento a un punto final que tú defines.

¿Por qué funciones sin servidor?

Las funciones sin servidor son una gran innovación para ayudar a desplegar rápidamente soluciones al tiempo que se reducen los gastos generales de las organizaciones. La ausencia de hardware que mantener es una gran ventaja, y las funciones sin servidor son capaces de gestionar tráfico impredecible flows. Son fáciles de desplegar y actualizar, por lo que puede ponerse en marcha rápidamente.


¡Sinergia!

La combinación de webhooks y funciones sin servidor hace que sea muy fácil crear ecosistemas ricos para la automatización o la interacción con el usuario. Ser capaz de manejar los eventos y datos generados por todos estos sistemas dispares elimina la necesidad de un middleware complicado, al tiempo que facilita la incorporación de código y eventos personalizados.


Conceptos básicos de Azure Functions

Azure Functions puede crearse a través de Azure Console o Visual Studio. Te recomiendo que pruebes ambos para que te familiarices con las experiencias. Una de las cosas buenas de crear algo en Azure Console es que puedes descargar la Azure Function resultante como un archivo de solución de Visual Studio. Visual Studio es la misma experiencia familiar IDE fuerte que usted conoce y ama.


Ambos métodos tienen sus ventajas. La consola de Azure Function te da acceso directo para controlar los parámetros de funcionamiento de la función desde los recursos disponibles hasta los límites de uso mensual para el control de costes. Todas estas opciones se pueden configurar y manipular desde Visual Studio a través del archivo host.json y las variables de entorno.


Creación de un consumidor Webhook básico

Primer paso

Cree una nueva solución de Visual Studio y añada un nuevo proyecto a esa solución.



Paso 2

Haga clic con el botón derecho en el nodo del proyecto y añada un Nuevo elemento. Seleccione Función Azure.



Paso 3

Ahora tienes un proyecto de Visual Studio muy familiar. Deberías tener una plantilla para una función Azure básica en C#. Es hora de construir algo de código para consumir tu webhook.



Paso 4

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



Paso 5

Publique la función Azure. Haga clic con el botón derecho en el nodo del proyecto y seleccione Publicar. Seleccione Azure Function y Create New. Tenga en cuenta que también puede actualizar una función existente. La función aparecerá ahora en su consola Azure.



Posibles escollos

El problema más común que se presenta cuando se trabaja 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 debido a que el POST del webhook se agota. Hay algunas cosas que usted puede hacer para mediar en estos problemas.


Los consumidores de webhooks deben ejecutarse de forma asíncrona. Los datos deben recibirse lo antes posible y luego procesarse. El error de diseño más común es intentar procesar los datos en tiempo real a medida que llegan. Esto funciona siempre que los datos sean consistentes y de pequeño tamaño, pero si el tamaño de los datos puede aumentar o ser inconsistente, entonces es mejor asegurarse de que los datos son recibidos y la petición HTTP respondida para que no se produzcan timeouts.


Otra cosa que puede ayudar a mitigar los procesos de larga ejecución es almacenar los datos publicados y utilizar la función sin servidor para iniciar un proceso en contenedores utilizando algo como Azure Container Services (AKS) para manejar las partes de larga ejecución. Usando este diseño, la función sin servidor debe disparar y olvidarse del contenedor, dejando que el contenedor publique sus resultados en un registro o en algún otro servicio de notificación de su elección. Esto mantiene la función sin servidor lo más breve posible, al tiempo que permite que se produzca un procesamiento complicado.


Encendamos esta vela

Ahí lo tienes. Ahora puedes seguir adelante y crear tu propio ecosistema utilizando funciones sin servidor y webhooks. A continuación encontrarás una lista de otros recursos que te ayudarán a profundizar en Azure Functions.

-Nick Zimmerman

P.D. - A continuación encontrará algunos recursos adicionales sobre las funciones de Azure que pueden resultarle interesantes.

Your new standard in Marketing, Pay & Sales. It's Bird

En right message -> a la right person -> en el right time.

Your new standard in Marketing, Pay & Sales. It's Bird

En right message -> a la right person -> en el right time.