Zum Hauptinhalt springen

Azure Functions: Trigger, Bindings und Hosting einfach erklärt

Erfahre, was Azure Functions sind, wie sie ereignisgesteuerte Serverless-Anwendungen ermöglichen und wie Trigger, Bindings, Hosting-Optionen und Workflows zusammenspielen.
· 7 Min. lesen

Entdecke KI

Azure Functions sind Teil von Microsofts Serverless-Compute-Dienst. Damit kannst du kleine Codeschnipsel als Reaktion auf Ereignisse ausführen, ohne dich um die Server kümmern zu müssen.

Eine Function kann zum Beispiel laufen, wenn eine HTTP-Anfrage eingeht, wenn eine Datei in den Speicher hochgeladen wird oder wenn ein geplanter Zeitpunkt erreicht ist.

„Serverless“ heißt nicht, dass es keine Server gibt. Es bedeutet, dass Azure die Infrastruktur für dich managt. Azure übernimmt Bereitstellung, Skalierung und Wartung im Hintergrund.

In diesem Guide zeige ich dir die Bausteine: Trigger, Bindings, Hosting-Optionen und ein praktisches Beispiel für den Einstieg.

Was sind Azure Functions?

Eine Azure Function ist ein kleines Stück Code, das ausgeführt wird, sobald ein von dir gewähltes Ereignis sie auslöst. Du schreibst die Logik, Azure erledigt den Rest.

Drei Grundideen prägen dieses Modell.

  1. Ereignisgesteuerte Ausführung: Der Code läuft nur, wenn etwas passiert – nicht dauerhaft.
  2. Automatische Skalierung: Azure fügt je nach Bedarf Rechenressourcen hinzu oder entfernt sie.
  3. Verbrauchsbasiertes Preismodell: In manchen Hosting-Plänen zahlst du nur für die Zeit, in der dein Code tatsächlich ausgeführt wird.

Idealerweise erledigt eine einzelne Function genau eine Aufgabe, etwa das Skalieren eines Bildes oder das Verarbeiten einer Nachricht. Eine Function App ist der Container, der eine oder mehrere Functions beinhaltet. Sie verwaltet gemeinsame Einstellungen wie Konfiguration und Deployment für alle enthaltenen Functions.

So funktionieren Azure Functions

Der Lebenszyklus einer Function folgt einem einfachen Muster:

  1. Ein Ereignis tritt auf, z. B. ein Datei-Upload oder ein HTTP-Aufruf.
  2. Ein Trigger erkennt das Ereignis und startet die Function sofort.
  3. Die Function führt ihren Code aus.
  4. Bindings verbinden die Function mit anderen Diensten, um Eingaben zu lesen oder Ausgaben zu senden.
  5. Azure verwaltet die Rechenressourcen für diesen Prozess – basierend auf deinem gewählten Hosting-Plan.

Dieser Ablauf ist weitgehend gleich – unabhängig von Sprache oder Hosting-Option. Nur Trigger, Code und Bindings ändern sich.

Azure-Functions-Trigger

Jede Function hat genau einen Trigger. Der Trigger definiert, wie genau die Function startet. Die wichtigsten Typen solltest du kennen:

  • HTTP-Trigger: Führt eine Function aus, wenn eine HTTP-Anfrage eingeht. Häufig zum Erstellen von APIs genutzt.
  • Timer-Trigger: Führt eine Function nach Zeitplan aus, z. B. stündlich oder einmal täglich.
  • Blob-Storage-Trigger: Startet eine Function, wenn eine Datei in Azure Blob Storage hinzugefügt oder geändert wird.
  • Queue-Trigger: Startet eine Function, sobald eine neue Nachricht in einer Warteschlange ankommt.
  • Event-Hub-Trigger: Reagiert auf einen Ereignisstrom und führt eine Function aus. Sehr hilfreich bei großen Datenmengen.
  • Cosmos DB Trigger: Führt eine Function aus, wenn Dokumente in einem Cosmos-DB-Container erstellt oder aktualisiert werden – basierend auf dem Change Feed.
  • Service-Bus-Trigger: Führt eine Function als Reaktion auf Nachrichten aus einer Azure Service Bus Queue oder einem Topic aus – häufig für Enterprise-Messaging und zum Entkoppeln von Systemen.
  • Durable Functions: Eine Erweiterung von Azure Functions, mit der du zustandsbehaftete Functions in einer Serverless-Umgebung schreiben kannst, um komplexe, mehrstufige Workflows zu orchestrieren.

Azure-Functions-Bindings

Trigger und Bindings werden oft verwechselt, sehen zwar ähnlich aus, erfüllen aber völlig unterschiedliche Aufgaben. Ein Trigger startet eine Function, ein Binding verbindet die Function mit Daten – indem es sie liest oder weitergibt.

Input-Bindings

Damit versorgst du deine Function mit Daten, ohne eigene Integrationslogik zu schreiben. Eine Function kann zum Beispiel automatisch einen Datensatz aus einer Datenbank lesen – nur durch Deklaration des Bindings.

Output-Bindings

Damit leitest du das Ergebnis deiner Function weiter. Du kannst zum Beispiel verarbeitete Nachrichten in eine Queue schreiben.

Hier ein Beispiel zur Veranschaulichung: Ein Blob-Storage-Trigger startet eine Function, sobald ein Bild hochgeladen wird. Ein Output-Binding speichert das skalierte Bild anschließend in einem anderen Storage-Container. Die Bindings übernehmen die Storage-Verbindungen, und du brauchst keinen eigenen Storage-Client-Code.

So erstellst du deine erste Azure Function

Hier ein sehr einfaches Beispiel für eine HTTP-getriggerte Function, die eine Begrüßung zurückgibt. Der Ablauf:

  1. Erstelle eine Function App. Das ist der Container für deine Function in Azure.
  2. Wähle eine Runtime und die Programmiersprache deiner Wahl.
  3. Füge innerhalb deiner Function App eine neue Function hinzu.
  4. Wähle den HTTP-Trigger, damit die Function auf Webanfragen reagiert.
  5. Füge eine einfache Logik hinzu, etwa einen Namen aus der Anfrage lesen und „Hello, [name].“ zurückgeben.
  6. Starte und teste die Function mit den integrierten Tools oder sende einfach eine Anfrage aus deinem Browser.
  7. Deploye sie nach Azure, damit sie live erreichbar ist.

Das Beispiel ist bewusst klein gehalten, um dir das Muster zu zeigen – den Rest erledigt deine Kreativität.

Von Azure Functions unterstützte Sprachen

Azure Functions unterstützt viele Sprachen, darunter:

  • C#
  • JavaScript/TypeScript
  • Python
  • Java
  • PowerShell

Unterstützungs- und Entwicklungsmodelle können je nach Sprache und Version variieren. Prüfe deshalb vor einem neuen Projekt die aktuelle Azure-Dokumentation, da sich Details häufig ändern.

Azure-Functions-Hosting-Optionen

Nicht jede Azure Function läuft gleich. Azure bietet mehrere Hosting-Pläne mit unterschiedlichen Abwägungen. Die richtige Wahl hängt von deinem Use Case ab. Wichtige Trade-offs sind:

  • Skalierung: Manche Pläne skalieren automatisch und sofort, andere benötigen mehr manuelle Steuerung.
  • Startverhalten: Manche Pläne halten Functions „warm“, also direkt startbereit, andere starten on demand.
  • Netzwerk: Manche Pläne unterstützen erweiterte Netzwerkfunktionen wie die Anbindung an ein privates virtuelles Netzwerk, andere nicht.
  • Kosten: Die Preismodelle reichen von pay-per-execution bis zu festen Monatskosten.

Skalierung und Cold Starts bei Azure Functions

Sobald deine Function in Produktion läuft, werden zwei Konzepte wichtig:

Automatische Skalierung

Azure beobachtet die Last deiner Function. Steigt die Nachfrage, werden mehr Instanzen bereitgestellt; sinkt sie, werden sie reduziert. Du musst das nicht manuell steuern.

Cold Starts

Wenn eine Function längere Zeit nicht gelaufen ist, kann sie beim nächsten Aufruf kurz brauchen, bis sie bereit ist. Diese Verzögerung nennt man Cold Start. Einige Hosting-Pläne verringern oder vermeiden das, indem Instanzen warm gehalten werden.

Häufige Einsatzszenarien für Azure Functions

Das ereignisgesteuerte Modell passt auf viele Alltagsprobleme. Besonders geeignet für:

APIs und Webhooks

Eingehende HTTP-Anfragen verarbeiten, ohne einen vollständigen Webserver rund um die Uhr zu betreiben.

Datei- und Bildverarbeitung

Eine Function auslösen, sobald eine Datei im Storage landet, und sie dann skalieren, konvertieren oder scannen.

Geplante Jobs

Aufräumaufgaben, Reports oder Erinnerungen per Timer ausführen – ohne dedizierten Always-on-Server.

Datenverarbeitungspipelines

Nachrichten oder Ereignisse bei Eintreffen schrittweise verarbeiten.

IoT und Eventverarbeitung

Große Mengen an Sensor- oder Gerätedaten verarbeiten, während sie einströmen.

Hintergrundaufgaben

Langsame oder sporadische Arbeiten wie E-Mailsenden auslagern, damit deine Hauptanwendung nicht blockiert.

Monitoring und Troubleshooting von Azure Functions

Sobald eine Function live ist, brauchst du Sichtbarkeit in ihre Performance.

Du kannst zum Beispiel Logs einsehen, die festhalten, was bei jedem Lauf passiert ist – sehr hilfreich fürs Debugging. Außerdem kannst du Application Insights in den Azure-Tools nutzen, das Performance, Anfragen und Fehler zentral erfasst.

Du solltest auch fehlgeschlagene Aufrufe tracken, um zu wissen, wann und warum eine Function nicht abgeschlossen wurde. Performance-Monitoring hilft dir zudem, langsame Functions früh zu erkennen. Und natürlich lässt sich ein Retry-Verhalten konfigurieren, damit fehlgeschlagene Ausführungen automatisch erneut versucht werden.

Fazit

Azure Functions ermöglichen es dir, Code als Reaktion auf Ereignisse auszuführen – ohne die zugrunde liegenden Server zu managen. Trigger entscheiden, wann eine Function startet. Bindings hingegen erleichtern die Anbindung an andere Dienste – ganz ohne zusätzliche Integrationslogik.

Wenn du von einer einfachen Test-Function zu einem Produktivbetrieb wechselst, gewinnen Hosting- und Skalierungsentscheidungen an Bedeutung. Der richtige Plan beeinflusst nicht nur die Kosten, sondern auch Geschwindigkeit und Zuverlässigkeit.

Iheb Gafsi

Autor

Iheb Gafsi

Ich arbeite an beschleunigten KI-Systemen, die Edge Intelligence mit föderierten ML-Pipelines auf dezentralen Daten und verteilten Workloads ermöglichen.  Meine Arbeit konzentriert sich auf große Modelle, Sprachverarbeitung, Computer Vision, Reinforcement Learning und fortgeschrittene ML-Topologien.

FAQs

Was sind Azure Functions?

Ein Serverless-Dienst, der kleine Codeeinheiten als Reaktion auf Ereignisse ausführt – ohne dass du Server verwaltest.

Was löst eine Azure Function aus?

Ereignisse wie HTTP-Anfragen, Timer, Datei-Uploads oder Nachrichten in Queues.

Was ist der Unterschied zwischen Trigger und Binding?

Ein Trigger startet die Function. Ein Binding verbindet sie mit anderen Diensten für Ein- oder Ausgabe.

Was ist ein Cold Start?

Eine kurze Verzögerung, wenn eine Function nach Leerlaufzeit neu startet.

Welche Sprachen unterstützt Azure Functions?

C#, JavaScript/TypeScript, Python, Java und PowerShell.

Themen

Ähnlich