Hoe maak je een basis webhookconsument met Azure Functions?

Hoe maak je een basis webhookconsument met Azure Functions?

Hoe maak je een basis webhookconsument met Azure Functions?

Dec 20, 2017

Gepubliceerd door

Gepubliceerd door

Nick Zimmerman

Nick Zimmerman

-

Categorie:

Categorie:

E-mail

E-mail

Ready to see Bird
in action?

Ready to see Bird
in action?

How To Create A Basic Webhook Consumer With Azure Functions

Azure Functions Webhook Interface

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 framework oplossing gevonden op Github.


Wat zijn Webhooks?

Webhooks zijn geweldige kleine dingen die door veel populaire diensten worden aangeboden, waaronder SparkPos

t, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal en Salesforce. Webhooks posten gegevens op basis van een gebeurtenis naar een eindpunt dat u definieert.

Waarom serverloze functies?

Serverloze functies zijn een geweldige innovatie om snel oplossingen te helpen implementeren en tegelijkertijd de overhead voor organisaties te verminderen. Het ontbreken van te onderhouden hardware is een groot voordeel, en de serverloze functies kunnen onvoorspelbare verkeers flows aan. Ze zijn eenvoudig te implementeren en te updaten, zodat u snel aan de slag kunt.


Synergie!

De combinatie van webhooks en serverloze functies maakt het heel eenvoudig om rijke ecosystemen te creëren voor automatisering of gebruikersinteractie. De mogelijkheid om de gebeurtenissen en gegevens die door al deze ongelijksoortige systemen worden gegenereerd aan te sturen, maakt ingewikkelde middleware overbodig en maakt het heel eenvoudig om aangepaste code en gebeurtenissen op te nemen.


Azure Functions grondbeginselen

Azure Functions kunnen worden aangemaakt via de Azure Console of Visual Studio. Ik raad je aan beide eens te proberen zodat je vertrouwd bent met de ervaringen. Een van de leuke dingen van het maken van iets in de Azure Console is dat je de resulterende Azure Function kunt downloaden als een Visual Studio solution bestand. Visual Studio is dezelfde vertrouwde sterke IDE-ervaring die u kent en waar u van houdt.


Er zijn voordelen aan beide methoden. De Azure Function console geeft u directe toegang tot de parameters van de werking van de functie, van beschikbare middelen tot maandelijkse gebruikslimieten voor kostenbeheersing. Al deze opties kunnen worden ingesteld en gemanipuleerd vanuit Visual Studio via het host.json bestand en omgevingsvariabelen.


Een basis Webhook Consument aanmaken

Stap 1

Maak een Nieuwe Visual Studio oplossing, en voeg een Nieuw Project toe aan die oplossing.



Stap 2

Rechtsklik op het projectknooppunt en voeg een Nieuw item toe. Kies Azure Function.



Stap 3

Nu heb je een zeer vertrouwd Visual Studio project. Je zou een sjabloon moeten hebben voor een basis C# Azure Function. Tijd om wat code te bouwen om je webhook te consumeren.



Stap 4

Lokaal debuggen. Dat klopt, je kunt dit ding lokaal debuggen met alle bekende Visual Studio-debug- en introspectietools. Pay let op de debugconsole, want die bevat veel waardevolle informatie over elke aanroep die je tijdens het lokaal testen aan je functie doet.



Stap 5

Publiceer de Azure Functie. Rechtsklik op het project knooppunt en selecteer Publiceren. Kies Azure Function en Create New. Merk op dat je ook een bestaande functie kunt bijwerken. De functie verschijnt nu in je Azure console.



Mogelijke valkuilen

De meest voorkomende valkuil die mensen treft bij het werken met webhook consumptie en serverloze functies is dat de functie te lang loopt. Hierdoor wordt de functie erg duur of mislukt helemaal omdat de webhook POST time out is. Er zijn een paar dingen die je kunt doen om deze problemen te bemiddelen.


Webhook-consumenten moeten asynchroon werken. De gegevens moeten zo snel mogelijk worden opgenomen en vervolgens verwerkt. De meest voorkomende ontwerpfout is proberen de gegevens in real time te verwerken terwijl ze binnenkomen. Dit werkt zolang de gegevens een consistente en kleine omvang hebben, maar als de omvang van de gegevens kan toenemen of inconsistent is, dan is het het beste om ervoor te zorgen dat de gegevens worden ontvangen en het HTTP-verzoek wordt beantwoord, zodat er geen time-outs optreden.


Iets anders dat kan helpen om langlopende processen te beperken is om de geposte gegevens op te slaan en de serverloze functie te gebruiken om een gecontaineriseerd proces te starten met behulp van iets als Azure Container Services (AKS) om de langlopende delen af te handelen. Met dit ontwerp zou de serverloze functie de container moeten afvuren en vergeten, waarbij de container zijn resultaten plaatst in een logboek of een andere notificatiedienst naar keuze. Dit houdt de serverloze functie zo kort mogelijk, terwijl er toch ingewikkelde verwerking kan plaatsvinden.


Laten we deze kaars aansteken

Daar heb je het. Nu kun je verder gaan en je eigen rijke ecosysteem creëren met behulp van serverloze functies en webhooks. Hieronder vindt u een lijst met andere bronnen om u te helpen dieper in Azure Functions te duiken.

-Nick Zimmerman

ps - hieronder staan enkele aanvullende bronnen over Azure functies die u misschien interessant vindt - veel plezier!

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

De right message -> naar de right person -> aan de right time.

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

De right message -> naar de right person -> aan de right time.