Konzepte für Azure Functions-Trigger und -BindungenAzure Functions triggers and bindings concepts

In diesem Artikel lernen Sie die allgemeinen Konzepte rund um Funktionstrigger und Bindungen kennen.In this article you learn the high-level concepts surrounding functions triggers and bindings.

Trigger sind das, was die Ausführung einer Funktion bewirkt.Triggers are what cause a function to run. Ein Trigger definiert, wie eine Funktion aufgerufen wird, und eine Funktion muss genau einen Trigger aufweisen.A trigger defines how a function is invoked and a function must have exactly one trigger. Trigger weisen zugeordnete Daten auf, die oftmals als Nutzlast der Funktion übergeben werden.Triggers have associated data, which is often provided as the payload of the function.

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.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. Daten von Bindungen werden der Funktion als Parameter bereitgestellt.Data from bindings is provided to the function as parameters.

Sie können verschiedene Bindungen nach Belieben kombinieren, wie es Ihren Anforderungen entspricht.You can mix and match different bindings to suit your needs. Bindungen sind optional, und eine Funktion kann mehrere Eingabe- und/oder Ausgabebindungen haben.Bindings are optional and a function might have one or multiple input and/or output bindings.

Mit Triggern und Bindungen können Sie den hartcodieren Zugriff auf andere Dienste vermeiden.Triggers and bindings let you avoid hardcoding access to other services. Ihre Funktion empfängt Daten (z.B. den Inhalt einer Warteschlangennachricht) in Funktionsparametern.Your function receives data (for example, the content of a queue message) in function parameters. Sie senden Daten (z.B., um eine Warteschlangennachricht zu erstellen), indem Sie den Rückgabewert der Funktion verwenden.You send data (for example, to create a queue message) by using the return value of the function.

Betrachten Sie die folgenden Beispiele, wie Sie verschiedene Funktionen implementieren könnten.Consider the following examples of how you could implement different functions.

BeispielszenarioExample scenario TriggerTrigger EingabebindungInput binding AusgabebindungOutput binding
Eine neue Warteschlangennachricht trifft ein, die eine Funktion ausführt, die das Schreiben in eine andere Warteschlange bewirkt.A new queue message arrives which runs a function to write to another queue. Warteschlange*Queue* KeineNone Warteschlange*Queue*
Ein geplanter Auftrag liest den Inhalt von Blob-Speicher und erstellt ein neues Cosmos DB-Dokument.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. TimerTimer Blob StorageBlob Storage Cosmos DBCosmos 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.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Event GridEvent Grid BLOB Storage und Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Ein Webhook, der Microsoft Graph verwendet, um ein Excel-Arbeitsblatt zu aktualisieren.A webhook that uses Microsoft Graph to update an Excel sheet. HTTPHTTP KeineNone Microsoft GraphMicrosoft Graph

* Stellt verschiedene Warteschlangen dar* Represents different queues

Diese Beispiele sollen nicht erschöpfend sein, werden aber bereitgestellt, um die gemeinsame Verwendung von Triggern und Bindungen zu veranschaulichen.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Definitionen für Trigger und BindungenTrigger and binding definitions

Trigger und Bindungen werden je nach Entwicklungsansatz unterschiedlich definiert.Triggers and bindings are defined differently depending on the development approach.

PlattformPlatform Trigger und Bindungen werden in dieser Weise konfiguriert...Triggers and bindings are configured by...
C#-KlassenbibliothekC# class library      Versehen von Methoden und Parametern mit C#-Attributen     decorating methods and parameters with C# attributes
Alle anderen (einschließlich Azure-Portal)All others (including Azure portal)      Aktualisieren von function.json (Schema)     updating function.json (schema)

Das Portal stellt eine Benutzeroberfläche für diese Konfiguration zur Verfügung, Sie können die Datei jedoch direkt bearbeiten, indem Sie den erweiterten Editor öffnen, der auf der Registerkarte Integrieren Ihrer Funktion zur Verfügung steht.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

In .NET definiert der Parametertyp den Datentyp für Eingabedaten.In .NET, the parameter type defines the data type for input data. Verwenden Sie zum Beispiel 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.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

Für dynamisch typisierte Sprachen wie JavaScript verwenden Sie die Eigenschaft dataType in der function.json-Datei.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Um z.B. den Inhalt einer HTTP-Anforderung im Binärformat zu lesen, legen Sie dataType auf binary fest:For example, to read the content of an HTTP request in binary format, set dataType to binary:

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

Andere Optionen für dataType sind stream und string.Other options for dataType are stream and string.

BindungsrichtungBinding direction

Alle Trigger und Bindungen enthalten eine direction-Eigenschaft in der Datei function.json:All triggers and bindings have a direction property in the function.json file:

  • Für Trigger ist die Richtung immer gleich in.For triggers, the direction is always in
  • Für Eingabe- und Ausgabebindungen werden in und out verwendet.Input and output bindings use in and out
  • Einige Bindungen unterstützen die spezielle Richtung inout.Some bindings support a special direction inout. Wenn Sie inout verwenden, ist nur Erweiterter Editor auf der Registerkarte Integrieren im Portal verfügbar.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

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.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

Unterstützte BindungenSupported bindings

Die folgende Tabelle zeigt die Bindungen, die in den beiden Hauptversionen der Azure Functions-Runtime unterstützt werden:This table shows the bindings that are supported in the two major versions of the Azure Functions runtime:

typeType 1.x1.x 2.x12.x1 TriggerTrigger EingabeInput OutputOutput
Blob StorageBlob storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
HTTP und WebhooksHTTP & webhooks
Microsoft Graph
Excel-Tabellen
Microsoft Graph
Excel tables
Microsoft Graph
OneDrive-Dateien
Microsoft Graph
OneDrive files
Microsoft Graph
Outlook-E-Mail
Microsoft Graph
Outlook email
Microsoft Graph
Ereignisse
Microsoft Graph
events
Microsoft Graph
Authentifizierungstoken
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
TabellenspeicherungTable storage
ZeitgeberTimer
TwilioTwilio

1 In 2.x müssen alle Bindungen außer HTTP und Timer registriert sein.1 In 2.x, all bindings except HTTP and Timer must be registered. Siehe Registrieren von Bindungserweiterungen.See Register binding extensions.

Informationen darüber, welche Bindungen sich in der Vorschauversion befinden oder für die Produktion zugelassen sind, finden Sie unter Unterstützte Sprachen.For information about which bindings are in preview or are approved for production use, see Supported languages.

RessourcenResources

Nächste SchritteNext steps