Konzepte für Azure Functions-Trigger und -Bindungen

In diesem Artikel lernen Sie die allgemeinen Konzepte rund um Funktionstrigger und Bindungen kennen.

Trigger sind das, was die Ausführung einer Funktion bewirkt. Ein Trigger definiert, wie eine Funktion aufgerufen wird, und eine Funktion muss genau einen Trigger aufweisen. Trigger weisen zugeordnete Daten auf, die oftmals als Nutzlast der Funktion übergeben werden.

Die Bindung an eine Funktion stellt eine Möglichkeit dar, eine andere Ressource deklarativ mit der Funktion zu verbinden; Bindungen können als Eingabebindungen, Ausgabebindungen oder beides verbunden werden. Daten von Bindungen werden der Funktion als Parameter bereitgestellt.

Sie können verschiedene Bindungen nach Belieben kombinieren, wie es Ihren Anforderungen entspricht. Bindungen sind optional, und eine Funktion kann mehrere Eingabe- und/oder Ausgabebindungen haben.

Mit Triggern und Bindungen können Sie den hartcodieren Zugriff auf andere Dienste vermeiden. Ihre Funktion empfängt Daten (z.B. den Inhalt einer Warteschlangennachricht) in Funktionsparametern. Sie senden Daten (z.B., um eine Warteschlangennachricht zu erstellen), indem Sie den Rückgabewert der Funktion verwenden.

Betrachten Sie die folgenden Beispiele, wie Sie verschiedene Funktionen implementieren könnten.

Beispielszenario Trigger Eingabebindung Ausgabebindung
Eine neue Warteschlangennachricht trifft ein, die eine Funktion ausführt, die das Schreiben in eine andere Warteschlange bewirkt. Warteschlange* None Warteschlange*
Ein geplanter Auftrag liest den Inhalt von Blob-Speicher und erstellt ein neues Cosmos DB-Dokument. Zeitgeber Blob Storage Cosmos DB
Das Event Grid wird verwendet, um ein Image aus Blob-Speicher und ein Dokument aus Cosmos DB zu lesen, um eine E-Mail zu senden. Event Grid BLOB Storage und Cosmos DB SendGrid
Ein Webhook, der Microsoft Graph verwendet, um ein Excel-Arbeitsblatt zu aktualisieren. HTTP None Microsoft Graph

* Stellt verschiedene Warteschlangen dar

Diese Beispiele sollen nicht erschöpfend sein, werden aber bereitgestellt, um die gemeinsame Verwendung von Triggern und Bindungen zu veranschaulichen.

Definitionen für Trigger und Bindungen

Trigger und Bindungen werden je nach Entwicklungssprache unterschiedlich definiert.

Sprache Trigger und Bindungen werden in dieser Weise konfiguriert...
C#-Klassenbibliothek      Versehen von Methoden und Parametern mit C#-Attributen
Java      Versehen von Methoden und Parametern mit Java-Anmerkungen
JavaScript/PowerShell/Python/TypeScript      Aktualisieren von function.json (Schema)

Für Sprachen, die auf „function.json“ angewiesen sind, bietet das Portal auf der Registerkarte Integration eine Benutzeroberfläche zum Hinzufügen von Bindungen. Sie können die Datei auch direkt im Portal auf der Registerkarte Programmieren und testen Ihrer Funktion bearbeiten. In Visual Studio Code können Sie ganz einfach eine Bindung zur Datei „function.json“ hinzufügen, indem Sie auf eine Reihe praktischer Eingabeaufforderungen reagieren.

In .NET und Java definiert der Parametertyp den Datentyp für Eingabedaten. Verwenden Sie z. B. string, um eine Bindung mit dem Text eines Warteschlangentriggers zu erstellen – einem Bytearray zum Lesen im Binärformat und einem benutzerdefinierten Typ zum Deserialisieren in einem Objekt. Da Funktionen der .NET-Klassenbibliothek und Java-Funktionen für Bindungsdefinitionen nicht auf function.json angewiesen sind, können sie nicht im Portal erstellt und bearbeitet werden. Die Bearbeitung von C# im Portal basiert auf einem C#-Skript, das function.json anstelle von Attributen verwendet.

Weitere Informationen zum Hinzufügen von Bindungen zu vorhandenen Funktionen finden Sie unter Verbinden von Funktionen mit Azure-Diensten mithilfe von Bindungen.

Für dynamisch typisierte Sprachen wie JavaScript verwenden Sie die Eigenschaft dataType in der dataType-Datei. Um z.B. den Inhalt einer HTTP-Anforderung im Binärformat zu lesen, legen Sie dataType auf binary fest:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Andere Optionen für dataType sind stream und string.

Bindungsrichtung

Alle Trigger und Bindungen enthalten eine direction-Eigenschaft in der Datei direction:

  • Für Trigger ist die Richtung immer gleich in.
  • Für Eingabe- und Ausgabebindungen werden in und out verwendet.
  • Einige Bindungen unterstützen die spezielle Richtung inout. Wenn Sie inout verwenden, ist nur inout auf der Registerkarte Integrieren im Portal verfügbar.

Wenn Sie zum Konfigurieren von Triggern und Bindungen Attribute in einer Klassenbibliothek verwenden, wird die Richtung in einem Attributkonstruktor angegeben oder aus dem Parametertyp abgeleitet.

Hinzufügen von Bindungen zu einer Funktion

Sie können Ihre Funktion mit anderen Diensten verbinden, indem Sie Eingabe- oder Ausgabebindungen verwenden. Fügen Sie eine Bindung hinzu, indem Sie Ihrer Funktion ihre spezifischen Definitionen hinzufügen. Informationen zur Vorgehensweise finden Sie unter Hinzufügen von Bindungen zu einer vorhandenen Funktion in Azure Functions.

Unterstützte Bindungen

Die folgende Tabelle zeigt die Bindungen, die in den Hauptversionen der Azure Functions-Runtime unterstützt werden:

type 1.x 2.x und höher1 Trigger Eingabe Output
Blob Storage
Azure Cosmos DB
Azure SQL (Vorschau)
Dapr3
Event Grid
Event Hubs
HTTP und Webhooks
IoT Hub
Kafka2
Mobile Apps
Notification Hubs
Queue Storage
RabbitMQ2
SendGrid
Service Bus
SignalR
Tabellenspeicherung
Zeitgeber
Twilio

1 Ab Version 2.x der Runtime müssen alle Bindungen mit Ausnahme von HTTP und Timer registriert werden. Siehe Registrieren von Bindungserweiterungen.

2 Trigger werden im Verbrauchstarif nicht unterstützt. Erfordert runtimegesteuerte Trigger.

3 Wird nur in Kubernetes, IoT Edge und anderen selbstgehosteten Modi unterstützt.

Informationen darüber, welche Bindungen sich in der Vorschauversion befinden oder für die Produktion zugelassen sind, finden Sie unter Unterstützte Sprachen.

Codebeispiele für Bindungen

Verwenden Sie die folgende Tabelle, um Beispiele für bestimmte Bindungstypen zu finden, die Ihnen zeigen, wie Sie mit Bindungen in Ihren Funktionen arbeiten. Wählen Sie zunächst die Registerkarte „Sprache“ aus, die Ihrem Projekt entspricht.

Dienst Beispiele Beispiele
Blobspeicher Trigger
Input (Eingabe)
Ausgabe
Link
Azure Cosmos DB Trigger
Input (Eingabe)
Ausgabe
Link
Azure SQL (Vorschau) Input (Eingabe)
Ausgabe
Link
Event Grid Trigger
Ausgabe
Link
Event Hubs Trigger
Ausgabe
IoT Hub Trigger
Ausgabe
HTTP Trigger Link
Queue Storage Trigger
Ausgabe
Link
RabbitMQ Trigger
Ausgabe
SendGrid Ausgabe
Service Bus Trigger
Ausgabe
Link
SignalR Trigger
Input (Eingabe)
Ausgabe
Table Storage Input (Eingabe)
Ausgabe
Timer Trigger Link
Twilio Ausgabe Link

Benutzerdefinierte Bindungen

Sie können benutzerdefinierte Eingabe- und Ausgabebindungen erstellen. Bindungen müssen in .NET erstellt werden, können aber von jeder unterstützten Sprache genutzt werden. Weitere Informationen zum Erstellen benutzerdefinierter Bindungen finden Sie unter Creating custom input and output bindings (Erstellen benutzerdefinierter Eingabe- und Ausgabebindungen).

Ressourcen

Nächste Schritte