Comment créer un consommateur webhook de base avec Azure Functions
·
20 déc. 2017

Points Clés
Les fonctions Azure offrent un moyen rapide et sans serveur de déployer et de mettre à l'échelle des consommateurs de webhook sans gérer d'infrastructure.
Les webhooks envoient des données d'événement à votre point de terminaison défini — les intégrer avec les fonctions Azure permet l'automatisation sur des plateformes comme Slack, Facebook et Salesforce.
En utilisant Visual Studio ou la Console Azure, vous pouvez facilement construire, déboguer et publier des consommateurs de webhook.
Pour éviter les délais d'attente coûteux, traitez les données de webhook de manière asynchrone — stockez et gérez les charges utiles larges ou variables en dehors de la fonction principale.
Les services de conteneur Azure (AKS) peuvent étendre la fonctionnalité pour des tâches de longue durée tout en gardant la fonction légère.
Combiner des fonctions sans serveur avec des webhooks élimine le besoin de middleware complexe, rendant l'automatisation plus flexible et évolutive.
Points forts des Q&A
Qu'est-ce que les webhooks et pourquoi sont-ils utiles ?
Les webhooks sont des messages automatisés envoyés par des services comme Slack ou PayPal à votre point de terminaison choisi lorsque des événements spécifiques se produisent. Ils permettent des intégrations en temps réel et des flux de travail pilotés par des événements.
Pourquoi utiliser Azure Functions pour la consommation de webhooks ?
Azure Functions offrent un modèle sans serveur—pas de serveurs à gérer, mise à l'échelle automatique et coûts par exécution—ce qui les rend idéales pour le trafic de webhooks imprévisibles.
Comment créer un consommateur de webhook de base dans Azure ?
Vous pouvez créer une Azure Function soit via Visual Studio, soit via la console Azure, ajouter un nouveau projet Azure Function, tester localement, puis publier directement sur Azure.
Quel est le plus grand piège lorsqu'on travaille avec des webhooks ?
Fonctions longues ou bloquantes. Traitez toujours les requêtes de manière asynchrone, répondez rapidement aux appels POST, et déchargez le travail lourd vers d'autres processus.
Comment puis-je gérer des événements de webhook complexes ou de longue durée ?
Utilisez Azure Container Services (AKS) ou des outils similaires pour un traitement étendu. La fonction doit déclencher ces conteneurs et revenir immédiatement pour éviter les expirations de délai.
Quel est l'avantage principal de combiner des fonctions serverless et des webhooks ?
Vous obtenez une configuration nécessitant peu d'entretien et offrant une grande agilité pour construire des écosystèmes automatisés à travers plusieurs services—sans avoir besoin de middleware traditionnel ou de lourdes intégrations.
En novembre, j'ai donné une conférence à Live! 360 sur la façon de créer un consommateur de webhook de base en utilisant Azure Functions. Ce billet de blog résumera cette conférence et distillera les éléments afin que vous compreniez les bases de Azure Functions,
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.
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 ?
Les webhooks sont de petites choses géniales fournies par de nombreux services populaires, y compris SparkPost, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal et Salesforce. Les webhooks envoient des données basées sur un événement à un point de terminaison que vous définissez.
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.








