
En novembre, j'ai donné une conférence à Live! 360 sur la façon de créer un consommateur de webhook basique en utilisant Azure Functions. Cet article de blog résumera cette conférence et distillera les choses pour que vous puissiez comprendre les bases des Azure Functions.
Interface de Webhook Azure Functions
En novembre, j'ai donné une conférence à Live! 360 sur comment créer un consommateur de webhook basique en utilisant Azure Functions. Ce billet de blog récapitulera cette conférence et distillera les éléments afin que vous compreniez les bases de Azure Function, et que vous puissiez étendre la solution framework trouvée sur Github.
Qu'est-ce que les Webhooks ?
Pourquoi les fonctions serverless ?
Les fonctions serverless 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 à maintenir est un grand avantage, et les fonctions serverless sont capables de gérer des flux de trafic imprévisibles. Elles sont faciles à déployer et à mettre à jour, vous permettant ainsi de démarrer rapidement.
Synergie !
La combinaison de webhooks et de fonctions serverless facilite grandement la création d'écosystèmes riches pour l'automatisation ou l'interaction utilisateur. Pouvoir se baser sur les événements et les données générés par tous ces systèmes disparates élimine le besoin de middleware complexe tout en rendant très facile l'incorporation de code personnalisé et d'événements.
Azure Functions Basics
Les Azure Functions peuvent être créées via la console Azure ou Visual Studio. Je recommande d'essayer les deux pour vous familiariser avec les expériences. L'un des avantages de la création de 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 la même expérience IDE solide et familière que vous connaissez et aimez.
Il y a des avantages aux deux méthodes. La console Azure Function vous donne un accès direct au contrôle des paramètres de l'opération de la fonction, des ressources disponibles pour limiter l'utilisation mensuelle afin de contrôler les 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 Basic Webhook Consumer
Étape 1
Créez une nouvelle solution Visual Studio et ajoutez un nouveau projet à cette solution.

Étape 2
Faites un clic droit 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 de base en C#. Il est temps de construire du code pour consommer votre webhook.

Étape 4
Déboguez localement. C'est ça, vous pouvez déboguer cette chose localement avec tous les outils de débogage et d'introspection Visual Studio familiers. Faites attention à la console de débogage, car elle contient beaucoup d'informations précieuses sur chaque appel que vous faites à votre fonction lors des tests locaux.

Étape 5
Publiez la fonction Azure. Faites un clic droit sur le nœud du projet et sélectionnez Publier. Choisissez Azure Function et créez-en une nouvelle. 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 auquel les gens sont confrontés lorsqu'ils travaillent avec la consommation de webhook et les fonctions sans serveur est que la fonction dure trop longtemps. Cela entraîne soit un coût très élevé pour la fonction, soit un échec complet car le POST du webhook expire. Il y a quelques choses que vous pouvez faire pour atténuer ces problèmes.
Les consommateurs de webhook devraient fonctionner de manière asynchrone. Les données doivent être ingérées aussi rapidement que possible, puis traitées. L'erreur de conception courante est de tenter 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 de taille constante et petite, 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 demande HTTP est répondue afin que les expirations ne se produisent pas.
Une autre chose qui peut aider à atténuer les processus de longue durée est de stocker les données publiées et d'utiliser la fonction sans serveur pour démarrer un processus conteneurisé en utilisant quelque chose comme Azure Container Services (AKS) pour gérer les parties de longue durée. En utilisant ce design, la fonction sans serveur devrait déclencher et oublier le conteneur, laissant le conteneur publier ses résultats soit dans un journal, soit dans un autre service de notification de votre choix. Cela garde la fonction sans serveur aussi brève que possible tout en permettant un traitement compliqué de se produire.
Allumons cette bougie
Voilà, vous l'avez. Maintenant, vous pouvez aller de l'avant et créer votre propre écosystème riche en utilisant des fonctions sans serveur et des webhooks. Ci-dessous, vous trouverez une liste d'autres ressources pour vous aider à approfondir vos connaissances sur Azure Functions.
-Nick Zimmerman
ps – ci-dessous sont quelques ressources supplémentaires sur les fonctions Azure que vous pourriez trouver intéressantes – profitez-en !