So erstellen Sie einen grundlegenden Webhook-Consumer mit Azure Functions

Nick Zimmerman

20.12.2017

E-Mail

1 min read

So erstellen Sie einen grundlegenden Webhook-Consumer mit Azure Functions

Wichtige Erkenntnisse

    • Azure Functions bieten eine schnelle, serverlose Möglichkeit, Webhook-Konsumenten bereitzustellen und zu skalieren, ohne die Infrastruktur zu verwalten.

    • Webhooks senden Ereignisdaten an Ihren definierten Endpunkt — die Integration mit Azure Functions ermöglicht Automatisierung über Plattformen wie Slack, Facebook und Salesforce.

    • Mit Visual Studio oder der Azure Console können Sie Webhook-Konsumenten problemlos erstellen, debuggen und veröffentlichen.

    • Um kostspielige Timeouts zu vermeiden, verarbeiten Sie Webhook-Daten asynchron — speichern und bearbeiten Sie große oder variable Nutzlasten außerhalb der Hauptfunktion.

    • Azure Container Services (AKS) können die Funktionalität für langlaufende Aufgaben erweitern und die Funktion dennoch leichtgewichtig halten.

    • Die Kombination von serverlosen Funktionen mit Webhooks beseitigt die Notwendigkeit komplexer Middleware, was die Automatisierung flexibler und skalierbarer macht.

Q&A Highlights

  • Was sind Webhooks und warum sind sie nützlich?

    Webhooks sind automatisierte Nachrichten, die von Diensten wie Slack oder PayPal an Ihren gewählten Endpunkt gesendet werden, wenn bestimmte Ereignisse auftreten. Sie ermöglichen Echtzeit-Integrationen und ereignisgesteuerte Workflows.

  • Warum Azure Functions für die Webhook-Nutzung verwenden?

    Azure Functions bieten ein serverloses Modell – keine Server zu verwalten, automatische Skalierung und Zahlung pro Ausführung – was sie ideal für unvorhersehbaren Webhook-Verkehr macht.

  • Wie erstelle ich einen grundlegenden Webhook-Consumer in Azure?

    Sie können eine Azure Function entweder über Visual Studio oder die Azure-Konsole erstellen, ein neues Azure Function-Projekt hinzufügen, lokal testen und dann direkt in Azure veröffentlichen.

  • Was ist die größte Falle beim Arbeiten mit Webhooks?

    Lange laufende oder blockierende Funktionen. Verarbeiten Sie Anfragen immer asynchron, antworten Sie schnell auf POST-Aufrufe und lagern Sie schwere Arbeiten an andere Prozesse aus.

  • Wie kann ich komplexe oder lang andauernde Webhook-Ereignisse handhaben?

    Verwenden Sie Azure Container Services (AKS) oder ähnliche Tools für erweiterte Verarbeitung. Die Funktion sollte diese Container auslösen und sofort zurückkehren, um Zeitüberschreitungen zu vermeiden.

  • Was ist der Hauptvorteil der Kombination von serverlosen Funktionen und Webhooks?

    Sie erhalten eine wartungsarme, hochflexible Einrichtung zum Aufbau automatisierter Ökosysteme über mehrere Dienste hinweg—ohne traditionelle Middleware oder hohen Integrationsaufwand.

Im November hielt ich einen Vortrag bei Live! 360 darüber, wie man einen grundlegenden Webhook-Client mit Azure Functions erstellt. Dieser Blogbeitrag wird diesen Vortrag zusammenfassen und die Dinge so aufbereiten, dass Sie die Grundlagen von Azure Functions verstehen.

Azure Functions Webhook Schnittstelle

Im November hielt ich einen Vortrag bei Live! 360 darüber, wie man einen einfachen Webhook-Consumer mit Azure Functions erstellt. Dieser Blogbeitrag wird diesen Vortrag rekapitulieren und die Dinge vereinfachen, damit Sie die Grundlagen von Azure Function verstehen und die Framework-Lösung auf Github erweitern.

Im November hielt ich einen Vortrag bei Live! 360 darüber, wie man einen einfachen Webhook-Consumer mit Azure Functions erstellt. Dieser Blogbeitrag wird diesen Vortrag rekapitulieren und die Dinge vereinfachen, damit Sie die Grundlagen von Azure Function verstehen und die Framework-Lösung auf Github erweitern.

Im November hielt ich einen Vortrag bei Live! 360 darüber, wie man einen einfachen Webhook-Consumer mit Azure Functions erstellt. Dieser Blogbeitrag wird diesen Vortrag rekapitulieren und die Dinge vereinfachen, damit Sie die Grundlagen von Azure Function verstehen und die Framework-Lösung auf Github erweitern.

Was sind Webhooks?

Webhooks sind großartige kleine Dinge, die von vielen beliebten Diensten wie SparkPost, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal und Salesforce bereitgestellt werden.

Webhooks senden basierend auf einem Ereignis Daten an einen von Ihnen festgelegten Endpunkt.

Webhooks sind großartige kleine Dinge, die von vielen beliebten Diensten wie SparkPost, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal und Salesforce bereitgestellt werden.

Webhooks senden basierend auf einem Ereignis Daten an einen von Ihnen festgelegten Endpunkt.

Webhooks sind großartige kleine Dinge, die von vielen beliebten Diensten wie SparkPost, Slack, Visual Studio Team Services, Office 365, Facebook, PayPal und Salesforce bereitgestellt werden.

Webhooks senden basierend auf einem Ereignis Daten an einen von Ihnen festgelegten Endpunkt.

Warum serverlose Funktionen?

Serverlose Funktionen sind eine großartige Innovation, um Lösungen schnell bereitzustellen und gleichzeitig den Aufwand für Organisationen zu reduzieren. Das Fehlen von Hardware zur Wartung ist ein großer Vorteil, und die serverlosen Funktionen können unvorhersehbare Verkehrsflüsse bewältigen. Sie sind einfach zu implementieren und zu aktualisieren, sodass Sie schnell einsatzbereit sind.

Serverlose Funktionen sind eine großartige Innovation, um Lösungen schnell bereitzustellen und gleichzeitig den Aufwand für Organisationen zu reduzieren. Das Fehlen von Hardware zur Wartung ist ein großer Vorteil, und die serverlosen Funktionen können unvorhersehbare Verkehrsflüsse bewältigen. Sie sind einfach zu implementieren und zu aktualisieren, sodass Sie schnell einsatzbereit sind.

Serverlose Funktionen sind eine großartige Innovation, um Lösungen schnell bereitzustellen und gleichzeitig den Aufwand für Organisationen zu reduzieren. Das Fehlen von Hardware zur Wartung ist ein großer Vorteil, und die serverlosen Funktionen können unvorhersehbare Verkehrsflüsse bewältigen. Sie sind einfach zu implementieren und zu aktualisieren, sodass Sie schnell einsatzbereit sind.

Synergie!

Die Kombination von Webhooks und serverlosen Funktionen macht es sehr einfach, reiche Ökosysteme für Automatisierung oder Benutzerinteraktion zu schaffen. Die Möglichkeit, auf die Ereignisse und Daten zu reagieren, die von all diesen unterschiedlichen Systemen erzeugt werden, beseitigt die Notwendigkeit für komplizierte Middleware und erleichtert die Integration von benutzerdefiniertem Code und Ereignissen erheblich.

Die Kombination von Webhooks und serverlosen Funktionen macht es sehr einfach, reiche Ökosysteme für Automatisierung oder Benutzerinteraktion zu schaffen. Die Möglichkeit, auf die Ereignisse und Daten zu reagieren, die von all diesen unterschiedlichen Systemen erzeugt werden, beseitigt die Notwendigkeit für komplizierte Middleware und erleichtert die Integration von benutzerdefiniertem Code und Ereignissen erheblich.

Die Kombination von Webhooks und serverlosen Funktionen macht es sehr einfach, reiche Ökosysteme für Automatisierung oder Benutzerinteraktion zu schaffen. Die Möglichkeit, auf die Ereignisse und Daten zu reagieren, die von all diesen unterschiedlichen Systemen erzeugt werden, beseitigt die Notwendigkeit für komplizierte Middleware und erleichtert die Integration von benutzerdefiniertem Code und Ereignissen erheblich.

Azure Functions Grundlagen

Azure Functions können über die Azure-Konsole oder Visual Studio erstellt werden. Ich empfehle Ihnen, beides auszuprobieren, damit Sie mit den jeweiligen Erfahrungen vertraut sind. Eines der schönen Dinge bei der Erstellung in der Azure-Konsole ist, dass Sie die resultierende Azure Function als Visual Studio-Lösungsdatei herunterladen können. Visual Studio ist die gleiche vertraute starke IDE-Erfahrung, die Sie kennen und lieben.

Es gibt Vorteile für beide Methoden. Die Azure Function-Konsole gibt Ihnen direkten Zugriff, um die Parameter des Funktionsbetriebs zu steuern, von verfügbaren Ressourcen bis zu monatlichen Nutzungslimits zur Kostenkontrolle. Alle diese Optionen können über die host.json-Datei und Umgebungsvariablen von Visual Studio aus eingestellt und manipuliert werden.

Azure Functions können über die Azure-Konsole oder Visual Studio erstellt werden. Ich empfehle Ihnen, beides auszuprobieren, damit Sie mit den jeweiligen Erfahrungen vertraut sind. Eines der schönen Dinge bei der Erstellung in der Azure-Konsole ist, dass Sie die resultierende Azure Function als Visual Studio-Lösungsdatei herunterladen können. Visual Studio ist die gleiche vertraute starke IDE-Erfahrung, die Sie kennen und lieben.

Es gibt Vorteile für beide Methoden. Die Azure Function-Konsole gibt Ihnen direkten Zugriff, um die Parameter des Funktionsbetriebs zu steuern, von verfügbaren Ressourcen bis zu monatlichen Nutzungslimits zur Kostenkontrolle. Alle diese Optionen können über die host.json-Datei und Umgebungsvariablen von Visual Studio aus eingestellt und manipuliert werden.

Azure Functions können über die Azure-Konsole oder Visual Studio erstellt werden. Ich empfehle Ihnen, beides auszuprobieren, damit Sie mit den jeweiligen Erfahrungen vertraut sind. Eines der schönen Dinge bei der Erstellung in der Azure-Konsole ist, dass Sie die resultierende Azure Function als Visual Studio-Lösungsdatei herunterladen können. Visual Studio ist die gleiche vertraute starke IDE-Erfahrung, die Sie kennen und lieben.

Es gibt Vorteile für beide Methoden. Die Azure Function-Konsole gibt Ihnen direkten Zugriff, um die Parameter des Funktionsbetriebs zu steuern, von verfügbaren Ressourcen bis zu monatlichen Nutzungslimits zur Kostenkontrolle. Alle diese Optionen können über die host.json-Datei und Umgebungsvariablen von Visual Studio aus eingestellt und manipuliert werden.

Erstellen eines Basic Webhook Consumers

Schritt 1

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

Visual studio editor


Schritt 2

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


Visual studio editor


Schritt 3

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

Visual studio editor


Schritt 4

Führen Sie lokales Debugging durch. Das stimmt, Sie können diese Sache lokal mit all den vertrauten Visual Studio-Debugging- und Inspektionswerkzeugen debuggen. Achten Sie auf die Debugging-Konsole, da sie viele wertvolle Informationen über jeden Anruf enthält, den Sie während des lokalen Testens an Ihre Funktion machen.

Debugging console


Schritt 5

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

Visual studio editor

Schritt 1

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

Visual studio editor


Schritt 2

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


Visual studio editor


Schritt 3

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

Visual studio editor


Schritt 4

Führen Sie lokales Debugging durch. Das stimmt, Sie können diese Sache lokal mit all den vertrauten Visual Studio-Debugging- und Inspektionswerkzeugen debuggen. Achten Sie auf die Debugging-Konsole, da sie viele wertvolle Informationen über jeden Anruf enthält, den Sie während des lokalen Testens an Ihre Funktion machen.

Debugging console


Schritt 5

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

Visual studio editor

Schritt 1

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

Visual studio editor


Schritt 2

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


Visual studio editor


Schritt 3

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

Visual studio editor


Schritt 4

Führen Sie lokales Debugging durch. Das stimmt, Sie können diese Sache lokal mit all den vertrauten Visual Studio-Debugging- und Inspektionswerkzeugen debuggen. Achten Sie auf die Debugging-Konsole, da sie viele wertvolle Informationen über jeden Anruf enthält, den Sie während des lokalen Testens an Ihre Funktion machen.

Debugging console


Schritt 5

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

Visual studio editor

Potenzielle Gefahren

Die häufigste Falle, in die Menschen beim Arbeiten mit Webhook-Verbrauch und serverlosen Funktionen geraten, ist, dass die Funktion zu lange läuft. Dies führt entweder dazu, dass die Funktion sehr kostspielig wird oder vollständig fehlschlägt, weil das Webhook-POST abläuft. Es gibt einige Dinge, die Sie tun können, um diese Probleme zu mildern.

Webhook-Verbraucher sollten asynchron laufen. Die Daten sollten so schnell wie möglich aufgenommen und dann verarbeitet werden. Der häufige Designfehler besteht darin, zu versuchen, die Daten in Echtzeit zu verarbeiten, während sie eingehen. Das funktioniert, solange die Daten eine konsistente und kleine Größe haben, aber wenn die Datengröße zunehmen oder inkonsistent sein kann, ist es am besten sicherzustellen, dass die Daten empfangen werden und die HTTP-Anfrage beantwortet wird, damit keine Zeitüberschreitungen auftreten.

Eine weitere Sache, die helfen kann, langwierige Prozesse zu mindern, ist, die geposteten Daten zu speichern und die serverlose Funktion zu verwenden, um einen Containerprozess mit etwas wie Azure Container Services (AKS) zu starten, um die langlaufenden Teile zu handhaben. Bei diesem Design sollte die serverlose Funktion den Container 'feuern und vergessen', sodass der Container seine Ergebnisse entweder in ein Protokoll oder einen anderen Benachrichtigungsdienst Ihrer Wahl postet. Dies hält die serverlose Funktion so kurz wie möglich und ermöglicht dennoch komplexe Verarbeitungen.

Die häufigste Falle, in die Menschen beim Arbeiten mit Webhook-Verbrauch und serverlosen Funktionen geraten, ist, dass die Funktion zu lange läuft. Dies führt entweder dazu, dass die Funktion sehr kostspielig wird oder vollständig fehlschlägt, weil das Webhook-POST abläuft. Es gibt einige Dinge, die Sie tun können, um diese Probleme zu mildern.

Webhook-Verbraucher sollten asynchron laufen. Die Daten sollten so schnell wie möglich aufgenommen und dann verarbeitet werden. Der häufige Designfehler besteht darin, zu versuchen, die Daten in Echtzeit zu verarbeiten, während sie eingehen. Das funktioniert, solange die Daten eine konsistente und kleine Größe haben, aber wenn die Datengröße zunehmen oder inkonsistent sein kann, ist es am besten sicherzustellen, dass die Daten empfangen werden und die HTTP-Anfrage beantwortet wird, damit keine Zeitüberschreitungen auftreten.

Eine weitere Sache, die helfen kann, langwierige Prozesse zu mindern, ist, die geposteten Daten zu speichern und die serverlose Funktion zu verwenden, um einen Containerprozess mit etwas wie Azure Container Services (AKS) zu starten, um die langlaufenden Teile zu handhaben. Bei diesem Design sollte die serverlose Funktion den Container 'feuern und vergessen', sodass der Container seine Ergebnisse entweder in ein Protokoll oder einen anderen Benachrichtigungsdienst Ihrer Wahl postet. Dies hält die serverlose Funktion so kurz wie möglich und ermöglicht dennoch komplexe Verarbeitungen.

Die häufigste Falle, in die Menschen beim Arbeiten mit Webhook-Verbrauch und serverlosen Funktionen geraten, ist, dass die Funktion zu lange läuft. Dies führt entweder dazu, dass die Funktion sehr kostspielig wird oder vollständig fehlschlägt, weil das Webhook-POST abläuft. Es gibt einige Dinge, die Sie tun können, um diese Probleme zu mildern.

Webhook-Verbraucher sollten asynchron laufen. Die Daten sollten so schnell wie möglich aufgenommen und dann verarbeitet werden. Der häufige Designfehler besteht darin, zu versuchen, die Daten in Echtzeit zu verarbeiten, während sie eingehen. Das funktioniert, solange die Daten eine konsistente und kleine Größe haben, aber wenn die Datengröße zunehmen oder inkonsistent sein kann, ist es am besten sicherzustellen, dass die Daten empfangen werden und die HTTP-Anfrage beantwortet wird, damit keine Zeitüberschreitungen auftreten.

Eine weitere Sache, die helfen kann, langwierige Prozesse zu mindern, ist, die geposteten Daten zu speichern und die serverlose Funktion zu verwenden, um einen Containerprozess mit etwas wie Azure Container Services (AKS) zu starten, um die langlaufenden Teile zu handhaben. Bei diesem Design sollte die serverlose Funktion den Container 'feuern und vergessen', sodass der Container seine Ergebnisse entweder in ein Protokoll oder einen anderen Benachrichtigungsdienst Ihrer Wahl postet. Dies hält die serverlose Funktion so kurz wie möglich und ermöglicht dennoch komplexe Verarbeitungen.

Lassen Sie uns diese Kerze anzünden

Da haben Sie es. Nun können Sie losziehen und Ihr eigenes reiches Ökosystem mit serverlosen Funktionen und Webhooks erstellen. Unten finden Sie eine Liste weiterer Ressourcen, die Ihnen helfen, tiefer in Azure Functions einzutauchen.

-Nick Zimmerman

PS – unten sind einige zusätzliche Ressourcen zu Azure Functions, die Sie interessant finden könnten – viel Spaß!

Da haben Sie es. Nun können Sie losziehen und Ihr eigenes reiches Ökosystem mit serverlosen Funktionen und Webhooks erstellen. Unten finden Sie eine Liste weiterer Ressourcen, die Ihnen helfen, tiefer in Azure Functions einzutauchen.

-Nick Zimmerman

PS – unten sind einige zusätzliche Ressourcen zu Azure Functions, die Sie interessant finden könnten – viel Spaß!

Da haben Sie es. Nun können Sie losziehen und Ihr eigenes reiches Ökosystem mit serverlosen Funktionen und Webhooks erstellen. Unten finden Sie eine Liste weiterer Ressourcen, die Ihnen helfen, tiefer in Azure Functions einzutauchen.

-Nick Zimmerman

PS – unten sind einige zusätzliche Ressourcen zu Azure Functions, die Sie interessant finden könnten – viel Spaß!

Andere Neuigkeiten

Mehr lesen aus dieser Kategorie

A person is standing at a desk while typing on a laptop.

Die komplette AI-native Plattform, die mit Ihrem Business skalierbar ist.

A person is standing at a desk while typing on a laptop.

Die komplette AI-native Plattform, die mit Ihrem Business skalierbar ist.