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 Azure Cosmos DB-Dokument. | Zeitgeber | Blob Storage | Azure Cosmos DB |
Das Event Grid wird verwendet, um ein Image aus Blob-Speicher und ein Dokument aus Azure Cosmos DB zu lesen, um eine E-Mail zu senden. | Event Grid | BLOB Storage und Azure 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
undout
verwendet. - Einige Bindungen unterstützen die spezielle Richtung
inout
. Wenn Sieinout
verwenden, ist nurinout
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.x1 | 2.x und höher2 | Trigger | Eingabe | Output |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP und Webhooks | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobile Apps | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Tabellenspeicherung | ✔ | ✔ | ✔ | ✔ | |
Zeitgeber | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1Der Support für Version 1.x der Azure Functions-Laufzeit endet am 14. September 2026. Es wird dringend empfohlen, dass Sie Ihre Apps zu Version 4.x migrieren, um vollständige Unterstützung zu erhalten.
2 Ab Version 2.x der Laufzeit müssen alle Bindungen mit Ausnahme von HTTP und Timer registriert werden. Siehe Registrieren von Bindungserweiterungen.
3 Trigger werden im Verbrauchstarif nicht unterstützt. Erfordert runtimegesteuerte Trigger.
4 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.
Bestimmte Bindungserweiterungsversionen werden nur unterstützt, solange das zugrunde liegende Dienst-SDK unterstützt wird. Änderungen an der Unterstützung in der zugrunde liegenden Dienst-SDK-Version wirken sich auf die Unterstützung der verarbeitenden Erweiterung aus.
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.
Der Bindungscode für C# hängt vom jeweiligen Prozessmodell ab.
Dienst | Beispiele | Beispiele |
---|---|---|
Blobspeicher | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger 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 |
Dienst | Beispiele | Beispiele |
---|---|---|
Blobspeicher | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger Input (Eingabe) Ausgabe |
|
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 |
Dienst | Beispiele | Beispiele |
---|---|---|
Blobspeicher | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
|
Azure SQL | Trigger 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 |
Dienst | Beispiele | Beispiele |
---|---|---|
Blobspeicher | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure SQL | Trigger Input (Eingabe) Ausgabe |
|
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 |
Der Bindungscode für Python hängt von der Python-Modellversion ab.
Dienst | Beispiele | Beispiele |
---|---|---|
Blobspeicher | Trigger Input (Eingabe) Ausgabe |
Link |
Azure Cosmos DB | Trigger Input (Eingabe) Ausgabe |
Link |
Azure-Daten-Explorer | Input (Eingabe) Ausgabe |
|
Azure SQL | Trigger 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
- Bindungsausdrücke und Muster
- Verwenden des Rückgabewerts einer Azure-Funktion
- Vorgehensweise: Registrieren eines Bindungsausdrucks
- Test:
- Beheben von Bindungsfehlern