
In november gaf ik een presentatie op Live! 360 over hoe je een basis webhook consument kunt maken met Azure Functions. Deze blogpost zal die presentatie samenvatten en de zaken verduidelijken zodat je de basisprincipes van Azure Functions zult begrijpen.
Azure Functions Webhook Interface
In november gaf ik een presentatie op Live! 360 over hoe je een basis-webhook-consument kunt maken met Azure Functions. Deze blogpost zal die presentatie samenvatten en de zaken zo distilleren dat je de basisprincipes van Azure Function begrijpt, en de framework-oplossing die te vinden is op Github. kunt uitbreiden.
Wat zijn Webhooks?
Waarom serverless functies?
Serverloze functies zijn een geweldige innovatie om snel oplossingen te implementeren en tegelijkertijd de overhead voor organisaties te verminderen. Het ontbreken van hardware om te onderhouden is een groot voordeel, en de serverloze functies kunnen onvoorspelbare verkeersstromen verwerken. Ze zijn eenvoudig te implementeren en bij te werken, zodat je snel aan de slag kunt.
Synergie!
Het combineren van webhooks en serverloze functies maakt het heel gemakkelijk om rijke ecosystemen voor automatisering of gebruikersinteractie te creëren. Het kunnen aansturen van de gebeurtenissen en gegevens die door al deze verschillende systemen worden gegenereerd, verwijdert de noodzaak voor gecompliceerde middleware en maakt het heel gemakkelijk om aangepaste code en gebeurtenissen op te nemen.
Azure Functions Basisprincipes
Azure Functions kunnen worden gemaakt via de Azure Console of Visual Studio. Ik raad aan om beide uit te proberen zodat je vertrouwd bent met de ervaringen. Een van de prettige dingen van het creëren van iets in de Azure Console is dat je de resulterende Azure Function kunt downloaden als een Visual Studio-oplossingsbestand. Visual Studio is dezelfde vertrouwde sterke IDE-ervaring die je kent en waar je van houdt.
Er zijn voordelen aan beide methoden. De Azure Function-console geeft je directe toegang om de parameters van de functie's werking te beheersen 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 Basic Webhook Consumer maken
Step 1
Maak een nieuwe Visual Studio-oplossing en voeg een nieuw project toe aan die oplossing.

Step 2
Rechtermuisklik op het projectknooppunt en voeg een nieuw item toe. Kies Azure Function.

Step 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 gebruiken.

Step 4
Debug lokaal. Dat klopt, je kunt deze zaak lokaal debuggen met alle vertrouwde Visual Studio-debugging- en introspectietools. Let op de debugconsole, want deze bevat veel waardevolle informatie over elke oproep die je tijdens lokaal testen naar je functie doet.

Step 5
Publiceer de Azure Function. Klik met de rechtermuisknop op het projectknooppunt en selecteer Publiceren. Kies Azure Function en Maak Nieuw. Merk op dat je een bestaande functie ook kunt bijwerken. De functie verschijnt nu in je Azure-console.

Potentiële valkuilen
De meest voorkomende valkuil die mensen tegenkomen bij het werken met webhook-consumptie en serverloze functies is dat de functie te lang draait. Dit zorgt er ofwel voor dat de functie erg duur wordt of helemaal faalt omdat de webhook POST-tijden verlopen. Er zijn een paar dingen die je kunt doen om deze problemen aan te pakken.
Webhook-consumenten moeten asynchroon draaien. De data moet zo snel mogelijk worden ingelezen en daarna verwerkt. De veelgemaakte ontwerpfout is proberen de gegevens in real-time te verwerken zodra ze binnenkomen. Dit werkt zolang de gegevensconsistentie en -omvang klein zijn, maar als de gegevensomvang kan toenemen of inconsistent kan zijn, is het het beste om ervoor te zorgen dat de gegevens worden ontvangen en dat er op het HTTP-verzoek wordt gereageerd, zodat er geen time-outs optreden.
Een ander ding dat kan helpen bij het beperken van langlopende processen, is het opslaan van de geposte gegevens en het gebruik van de serverloze functie 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 starten en vergeten, waarbij de container zijn resultaten naar keuze naar een log of een andere meldingsdienst van uw keuze kan posten. Dit houdt de serverloze functie zo kort mogelijk, terwijl ingewikkelde verwerking toch kan plaatsvinden.
Laten we deze kaars aansteken
Daar heb je het. Nu kun je verdergaan en je eigen rijke ecosysteem creëren met serverloze functies en webhooks. Hieronder staan een lijst met andere bronnen om je te helpen dieper in Azure Functions te duiken.
-Nick Zimmerman
ps – hieronder staan enkele aanvullende bronnen over Azure-functies die je misschien interessant vindt – geniet ervan!