Comment créer un consommateur Webhook de base avec Azure Functions ?

Comment créer un consommateur Webhook de base avec Azure Functions ?

Comment créer un consommateur Webhook de base avec Azure Functions ?

Dec 20, 2017

Publié par

Publié par

Nick Zimmerman

Nick Zimmerman

-

Catégorie :

Catégorie :

Courriel :

Courriel :

Ready to see Bird
in action?

Ready to see Bird
in action?

How To Create A Basic Webhook Consumer With Azure Functions

Interface Azure Functions Webhook

In November, I gave a talk at En direct ! 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 solution framework trouvée sur Github.


Que sont les Webhooks ?

Les Webhooks sont des petits trucs géniaux fournis par de nombreux services populaires, dont SparkPos.

t, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal et Salesforce. Les Webhooks postent des données basées sur un événement vers un point de terminaison que vous définissez.

Pourquoi des fonctions sans serveur ?

Les fonctions sans serveur sont une grande innovation pour aider à déployer rapidement des solutions tout en réduisant les frais généraux pour les organisations. L'absence de matériel à entretenir est un grand avantage, et les fonctions sans serveur sont capables de gérer un trafic imprévisible flows. Elles sont faciles à déployer et à mettre à jour, ce qui vous permet d'être rapidement opérationnel.


Synergie !

La combinaison des webhooks et des fonctions serverless permet de créer très facilement des écosystèmes riches pour l'automatisation ou l'interaction avec les utilisateurs. Le fait de pouvoir piloter les événements et les données générés par tous ces systèmes disparates supprime la nécessité d'un intergiciel compliqué tout en permettant d'incorporer très facilement du code et des événements personnalisés.


Les bases d'Azure Functions

Azure Functions peut être créé via la console Azure ou Visual Studio. Je vous recommande d'essayer les deux afin de vous familiariser avec les expériences. L'un des avantages de créer quelque chose dans la console Azure est que vous pouvez télécharger la fonction Azure résultante en tant que fichier de solution Visual Studio. Visual Studio est le même IDE puissant que vous connaissez et appréciez.


Les deux méthodes présentent des avantages. La console Azure Function vous donne un accès direct pour contrôler les paramètres de fonctionnement de la fonction, des ressources disponibles aux limites d'utilisation mensuelles pour le contrôle des coûts. Toutes ces options peuvent être définies et manipulées à partir de Visual Studio via le fichier host.json et les variables d'environnement.


Création d'un consommateur Webhook de base

Étape 1

Créez une nouvelle solution Visual Studio, et ajoutez un nouveau projet à cette solution.



Étape 2

Cliquez avec le bouton droit de la souris sur le nœud du projet et ajoutez un nouvel élément. Choisissez Azure Function.



Étape 3

Vous avez maintenant un projet Visual Studio très familier. Vous devriez avoir un modèle pour une fonction Azure C# de base. Il est temps de construire un peu de code pour consommer votre webhook.



Étape 4

Débogage local. C'est vrai, vous pouvez déboguer cette chose localement avec tous les outils familiers de débogage et d'introspection de Visual Studio. Pay attention à la console de débogage, car elle contient beaucoup d'informations précieuses sur chaque appel que vous faites à votre fonction pendant les tests locaux.



Étape 5

Publiez la fonction Azure. Cliquez avec le bouton droit de la souris sur le nœud du projet et sélectionnez Publier. Choisissez Azure Function et Create New. Notez que vous pouvez également mettre à jour une fonction existante. La fonction apparaîtra maintenant dans votre console Azure.



Pièges potentiels

Le piège le plus courant qui frappe les gens lorsqu'ils travaillent avec la consommation de webhook et les fonctions sans serveur est que la fonction s'exécute trop longtemps. La fonction devient alors très coûteuse ou échoue complètement en raison de l'expiration du POST du webhook. Il y a plusieurs choses que vous pouvez faire pour atténuer ces problèmes.


Les consommateurs de Webhooks doivent s'exécuter de manière asynchrone. Les données doivent être ingérées aussi rapidement que possible, puis traitées. L'erreur de conception la plus courante consiste à essayer de traiter les données en temps réel, au fur et à mesure de leur arrivée. Cela fonctionne tant que les données sont cohérentes et de petite taille, mais si la taille des données peut augmenter ou être incohérente, il est préférable de s'assurer que les données sont reçues et que la requête HTTP est traitée afin d'éviter les dépassements de temps.


Une autre chose qui peut aider à atténuer les processus à long terme est de stocker les données affichées et d'utiliser la fonction serverless pour lancer un processus conteneurisé en utilisant quelque chose comme Azure Container Services (AKS) pour gérer les parties à long terme. Avec cette conception, la fonction sans serveur doit lancer et oublier le conteneur, laissant le conteneur publier ses résultats dans un journal ou un autre service de notification de votre choix. La fonction sans serveur est ainsi aussi brève que possible, tout en permettant la réalisation de traitements complexes.


Allumons cette bougie

Voilà, c'est fait. Vous pouvez maintenant aller de l'avant et créer votre propre écosystème riche en utilisant des fonctions sans serveur et des webhooks. Vous trouverez ci-dessous une liste d'autres ressources pour vous aider à plonger plus profondément dans Azure Functions.

-Nick Zimmerman

ps - vous trouverez ci-dessous d'autres ressources sur les fonctions Azure qui pourraient vous intéresser - profitez-en !

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

Le right message -> à la right person -> au right time.

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

Le right message -> à la right person -> au right time.