So erstellen Sie einen einfachen Webhook-Verbraucher mit Azure Functions

So erstellen Sie einen einfachen Webhook-Verbraucher mit Azure Functions

So erstellen Sie einen einfachen Webhook-Verbraucher mit Azure Functions

Dec 20, 2017

Herausgegeben von

Herausgegeben von

Nick Zimmerman

Nick Zimmerman

-

Kategorie:

Kategorie:

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-Schnittstelle

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-Lösung auf Github gefunden.


Was sind Webhooks?

Webhooks sind großartige kleine Dinge, die von vielen beliebten Diensten wie SparkPos

t, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal und Salesforce. Webhooks posten Daten basierend auf einem Ereignis an einen von Ihnen definierten Endpunkt.

Warum serverlose Funktionen?

Serverlose Funktionen sind eine großartige Innovation, die eine schnelle Bereitstellung von Lösungen ermöglicht und gleichzeitig den Aufwand für Unternehmen reduziert. Die Tatsache, dass keine Hardware gewartet werden muss, ist ein großer Vorteil, und die serverlosen Funktionen sind in der Lage, unvorhersehbaren Datenverkehr zu bewältigen flows. Sie sind einfach zu implementieren und zu aktualisieren, sodass Sie schnell loslegen können.


Synergie!

Die Kombination von Webhooks und serverlosen Funktionen macht es sehr einfach, umfangreiche Ökosysteme für die Automatisierung oder Benutzerinteraktion zu erstellen. Die Möglichkeit, die von all diesen unterschiedlichen Systemen generierten Ereignisse und Daten zu nutzen, macht komplizierte Middleware überflüssig und erleichtert die Einbindung von benutzerdefiniertem Code und Ereignissen.


Grundlagen von Azure-Funktionen

Azure-Funktionen können über die Azure-Konsole oder Visual Studio erstellt werden. Ich empfehle Ihnen, beides auszuprobieren, damit Sie mit den Erfahrungen vertraut sind. Einer der Vorteile bei der Erstellung von Funktionen in der Azure-Konsole ist, dass Sie die resultierende Azure-Funktion als Visual Studio-Lösungsdatei herunterladen können. Visual Studio ist die gewohnte starke IDE-Erfahrung, die Sie kennen und lieben.


Beide Methoden haben ihre Vorteile. Über die Azure Function-Konsole haben Sie direkten Zugriff auf die Parameter des Funktionsbetriebs, von den verfügbaren Ressourcen bis zu den monatlichen Nutzungsgrenzen für die Kostenkontrolle. Alle diese Optionen können von Visual Studio aus über die host.json-Datei und Umgebungsvariablen eingestellt und manipuliert werden.


Erstellen eines einfachen Webhook-Verbrauchers

Schritt 1

Erstellen Sie eine neue Visual Studio-Lösung und fügen Sie ein neues Projekt zu dieser Lösung hinzu.



Schritt 2

Klicken Sie mit der rechten Maustaste auf den Projektknoten, und fügen Sie ein neues Element hinzu. Wählen Sie Azure Function.



Schritt 3

Jetzt haben Sie ein sehr vertrautes Visual Studio-Projekt. Sie sollten eine Vorlage für eine einfache C# Azure-Funktion haben. Es ist an der Zeit, etwas Code zu erstellen, um Ihren Webhook zu nutzen.



Schritt 4

Lokal debuggen. Das stimmt, Sie können dieses Ding lokal mit allen vertrauten Visual Studio Debugging- und Introspektionswerkzeugen debuggen. Pay Beachten Sie die Debugging-Konsole, da sie viele wertvolle Informationen über jeden Aufruf enthält, den Sie während des lokalen Testens an Ihre Funktion machen.



Schritt 5

Veröffentlichen Sie die Azure-Funktion. Klicken Sie mit der rechten Maustaste auf den Projektknoten und wählen Sie Veröffentlichen. Wählen Sie Azure Function und Create New. Beachten Sie, dass Sie auch eine bestehende Funktion aktualisieren können. Die Funktion wird nun in Ihrer Azure-Konsole angezeigt.



Potenzielle Fallstricke

Der häufigste Fallstrick, der bei der Arbeit mit Webhook-Verbrauch und serverlosen Funktionen auftritt, ist, dass die Funktion zu lange läuft. Dies führt entweder dazu, dass die Funktion sehr kostspielig wird oder komplett fehlschlägt, weil die Webhook-POST-Zeit abgelaufen ist. Es gibt ein paar Dinge, die Sie tun können, um diese Probleme zu vermeiden.


Webhook-Verbraucher sollten asynchron laufen. Die Daten sollten so schnell wie möglich eingelesen und dann verarbeitet werden. Der häufigste Fehler bei der Konzeption besteht darin, dass versucht wird, die Daten in Echtzeit zu verarbeiten, wenn sie eintreffen. Dies funktioniert, solange die Daten eine konsistente und kleine Größe haben. Wenn die Datengröße jedoch zunehmen oder inkonsistent sein kann, ist es am besten sicherzustellen, dass die Daten empfangen und die HTTP-Anfrage beantwortet wird, damit es nicht zu Zeitüberschreitungen kommt.


Eine weitere Möglichkeit, lang laufende Prozesse zu entschärfen, besteht darin, die geposteten Daten zu speichern und die serverlose Funktion zu verwenden, um einen containerisierten Prozess zu starten, der etwas wie Azure Container Services (AKS) verwendet, um die lang laufenden Teile zu verarbeiten. Bei diesem Design sollte die serverlose Funktion den Container starten und vergessen, so dass der Container seine Ergebnisse entweder in ein Protokoll oder einen anderen Benachrichtigungsdienst Ihrer Wahl posten kann. Auf diese Weise wird die serverlose Funktion so kurz wie möglich gehalten, während gleichzeitig eine komplizierte Verarbeitung möglich ist.


Zünden wir diese Kerze an

Da haben Sie es. Jetzt können Sie loslegen und Ihr eigenes reichhaltiges Ökosystem mit serverlosen Funktionen und Webhooks erstellen. Im Folgenden finden Sie eine Liste weiterer Ressourcen, die Ihnen helfen, tiefer in Azure Functions einzutauchen.

-Nick Zimmerman

ps - unten finden Sie einige zusätzliche Ressourcen zu Azure-Funktionen, die für Sie interessant sein könnten - viel Spaß!

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

Die right message -> zum right person -> am right time.

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

Die right message -> zum right person -> am right time.