Hur man skapar en grundläggande Webhook-konsument med Azure Functions

Hur man skapar en grundläggande Webhook-konsument med Azure Functions

Hur man skapar en grundläggande Webhook-konsument med Azure Functions

Dec 20, 2017

Publicerad av

Publicerad av

Nick Zimmerman

Nick Zimmerman

Kategori:

Kategori:

E-post

E-post

Ready to see Bird
in action?

Ready to see Bird
in action?

How To Create A Basic Webhook Consumer With Azure Functions

Azure Functions gränssnitt för webhook

In November, I gave a talk at Live! 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 ramverkslösning som finns på Github.


Vad är Webhooks?

Webhooks är fantastiska små saker som tillhandahålls av många populära tjänster, inklusive SparkPos

t, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal och Salesforce. Webhooks skickar data baserat på en händelse till en slutpunkt som du definierar.

Varför serverlösa funktioner?

Serverlösa funktioner är en fantastisk innovation som hjälper till att snabbt distribuera lösningar och samtidigt minska kostnaderna för organisationer. Avsaknaden av hårdvara att underhålla är en stor fördel, och de serverlösa funktionerna kan hantera oförutsägbar trafik flows. De är enkla att distribuera och uppdatera, så att du snabbt kan komma igång.


Synergi!

Kombinationen av webhooks och serverlösa funktioner gör det mycket enkelt att skapa rika ekosystem för automatisering eller användarinteraktion. Genom att kunna använda de händelser och data som genereras av alla dessa olika system slipper man komplicerad middleware, samtidigt som det blir mycket enkelt att integrera anpassad kod och händelser.


Grundläggande om Azure Functions

Azure Functions kan skapas via Azure Console eller Visual Studio. Jag rekommenderar att du provar båda så att du är bekant med upplevelserna. En av fördelarna med att skapa något i Azure Console är att du kan ladda ner den resulterande Azure Function som en lösningsfil i Visual Studio. Visual Studio är samma välbekanta starka IDE-upplevelse som du känner och älskar.


Det finns fördelar med båda metoderna. Azure Function-konsolen ger dig direkt tillgång till att styra parametrarna för funktionens drift, från tillgängliga resurser till månatliga användningsgränser för kostnadskontroll. Alla dessa alternativ kan ställas in och manipuleras från Visual Studio via filen host.json och miljövariabler.


Skapa en grundläggande Webhook-konsument

Steg 1

Skapa en ny Visual Studio-lösning och lägg till ett nytt projekt i den lösningen.



Steg 2

Högerklicka på projektnoden och lägg till ett Nytt objekt. Välj Azure Function.



Steg 3

Nu har du ett mycket välbekant Visual Studio-projekt. Du bör ha en mall för en grundläggande C# Azure Function. Dags att bygga lite kod för att konsumera din webhook.



Steg 4

Felsök lokalt. Det stämmer, du kan felsöka den här saken lokalt med alla de välbekanta Visual Studio-felsöknings- och introspektionsverktygen. Pay uppmärksamma felsökningskonsolen, eftersom den innehåller mycket värdefull information om varje anrop som du gör till din funktion under lokal testning.



Steg 5

Publicera Azure-funktionen. Högerklicka på projektnoden och välj Publicera. Välj Azure Function och Create New. Observera att du även kan uppdatera en befintlig funktion. Funktionen visas nu i din Azure-konsol.



Potentiella fallgropar

Den vanligaste fallgropen när man arbetar med webhook-konsumtion och serverlösa funktioner är att funktionen tar för lång tid. Detta leder antingen till att funktionen blir mycket kostsam eller misslyckas helt på grund av att webhook POST tar timeout. Det finns några saker du kan göra för att lösa dessa problem.


Webhook-konsumenter bör köras asynkront. Data ska tas in så snabbt som möjligt och sedan bearbetas. Det vanligaste designfelet är att försöka bearbeta data i realtid när de kommer in. Detta fungerar så länge datan är konsekvent och liten, men om datastorleken kan öka eller vara inkonsekvent är det bäst att se till att datan tas emot och att HTTP-förfrågan besvaras så att timeouts inte uppstår.


En annan sak som kan hjälpa till att mildra långvariga processer är att lagra de publicerade uppgifterna och använda den serverlösa funktionen för att starta en containeriserad process med något som Azure Container Services (AKS) för att hantera de långvariga delarna. Med den här designen ska den serverlösa funktionen starta och glömma containern och låta containern posta sina resultat antingen till en logg eller någon annan aviseringstjänst som du väljer. Detta håller den serverlösa funktionen så kort som möjligt samtidigt som komplicerad bearbetning fortfarande kan ske.


Låt oss tända detta ljus

Där har du det. Nu kan du gå vidare och skapa ditt eget rika ekosystem med serverlösa funktioner och webhooks. Nedan finns en lista över andra resurser som hjälper dig att dyka djupare in i Azure Functions.

-Nick Zimmerman

ps - nedan finns några ytterligare resurser om Azure-funktioner som du kanske tycker är intressanta - njut!

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

Den right message -> till right person -> vid right time.

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

Den right message -> till right person -> vid right time.