Concepten van Azure Functions triggers en bindingenAzure Functions triggers and bindings concepts
In dit artikel vindt u informatie over de concepten van het hoge niveau rond functies triggers en bindingen.In this article you learn the high-level concepts surrounding functions triggers and bindings.
Triggers zijn de oorzaak dat een functie wordt uitgevoerd.Triggers are what cause a function to run. Een trigger definieert hoe een functie wordt aangeroepen en een functie moet precies één trigger hebben.A trigger defines how a function is invoked and a function must have exactly one trigger. Aan triggers zijn gegevens gekoppeld. Meestal is dit de nettolading waarmee de functie is geactiveerd.Triggers have associated data, which is often provided as the payload of the function.
Een binding met een functie is een manier om een andere resource declaratief aan de functie te koppelen. bindingen kunnen worden verbonden als invoer bindingen, uitvoer bindingen of beide.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. Gegevens van bindingen worden als parameters doorgegeven aan de functie.Data from bindings is provided to the function as parameters.
U kunt verschillende bindingen mixen en matchen om aan uw behoeften te voldoen.You can mix and match different bindings to suit your needs. Bindingen zijn optioneel en een functie kan een of meerdere invoer- en/of uitvoerbindingen hebben.Bindings are optional and a function might have one or multiple input and/or output bindings.
Met triggers en bindingen kunt u hardcoding toegang tot andere services voor komen.Triggers and bindings let you avoid hardcoding access to other services. Uw functie ontvangt gegevens (bijvoorbeeld de inhoud van een wachtrijbericht) in functieparameters.Your function receives data (for example, the content of a queue message) in function parameters. U verzendt gegevens (bijvoorbeeld om een wachtrijbericht te maken) door de retourwaarde van de functie te gebruiken.You send data (for example, to create a queue message) by using the return value of the function.
Bekijk de volgende voor beelden van hoe u verschillende functies kunt implementeren.Consider the following examples of how you could implement different functions.
VoorbeeldscenarioExample scenario | TriggerTrigger | Invoer bindingInput binding | Uitvoer bindingOutput binding |
---|---|---|---|
Er wordt een nieuw wachtrij bericht ontvangen waarmee een functie wordt uitgevoerd om naar een andere wachtrij te schrijven.A new queue message arrives which runs a function to write to another queue. | Wachtrij*Queue* | GeenNone | Wachtrij*Queue* |
Met een geplande taak wordt Blob Storage inhoud gelezen en wordt er een nieuw Cosmos DB document gemaakt.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. | TimerTimer | Blob StorageBlob Storage | Cosmos DBCosmos DB |
De Event Grid wordt gebruikt voor het lezen van een afbeelding van Blob Storage en een document van Cosmos DB om een e-mail bericht te verzenden.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 en Cosmos DBBlob Storage and Cosmos DB | SendGridSendGrid |
Een webhook die gebruikmaakt van Microsoft Graph om een Excel-werk blad bij te werken.A webhook that uses Microsoft Graph to update an Excel sheet. | HTTPHTTP | GeenNone | Microsoft GraphMicrosoft Graph |
* Vertegenwoordigt verschillende wacht rijen* Represents different queues
Deze voor beelden zijn niet volledig, maar zijn bedoeld om te laten zien hoe u triggers en bindingen samen kunt gebruiken.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.
Definities van triggers en bindingenTrigger and binding definitions
Triggers en bindingen worden op verschillende manieren gedefinieerd, afhankelijk van de taal van de ontwikkeling.Triggers and bindings are defined differently depending on the development language.
TaalLanguage | Triggers en bindingen worden geconfigureerd door...Triggers and bindings are configured by... |
---|---|
C#-klassebibliotheekC# class library | de methoden en para meters voor C#-kenmerken decorating methods and parameters with C# attributes |
JavaJava | het decoreren van methoden en para meters met Java-aantekeningen decorating methods and parameters with Java annotations |
Java script/Power shell/python/type scriptJavaScript/PowerShell/Python/TypeScript | function.jsbijwerken op (schema) updating function.json (schema) |
Voor talen die afhankelijk zijn van function.jsop, biedt de portal een gebruikers interface voor het toevoegen van bindingen op het tabblad integratie . U kunt het bestand ook rechtstreeks in de portal bewerken op het tabblad code en testen van uw functie.For languages that rely on function.json, the portal provides a UI for adding bindings in the Integration tab. You can also edit the file directly in the portal in the Code + test tab of your function. Met Visual Studio code kunt u eenvoudig een binding toevoegen aan een function.jsin het bestand door een handige set prompts te volgen.Visual Studio Code lets you easily add a binding to a function.json file by following a convenient set of prompts.
In .NET en Java definieert het parameter type het gegevens type voor invoer gegevens.In .NET and Java, the parameter type defines the data type for input data. Gebruik bijvoorbeeld string
om een binding te maken met de tekst van een wachtrij trigger, een byte matrix die als binair moet worden gelezen en een aangepast type voor het deserialiseren van een object.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. Omdat de functies van de .NET-klassebibliotheek en Java-functies niet afhankelijk zijn van function.js voor bindings definities, kunnen ze niet worden gemaakt en bewerkt in de portal.Since .NET class library functions and Java functions don't rely on function.json for binding definitions, they can't be created and edited in the portal. Het bewerken van c#-portals is gebaseerd op C#-script, dat function.js gebruikt in plaats van kenmerken.C# portal editing is based on C# script, which uses function.json instead of attributes.
Zie functies verbinden met Azure-Services met behulp van bindingenvoor meer informatie over het toevoegen van bindingen aan bestaande functies.To learn more about how to adding bindings to existing functions, see Connect functions to Azure services using bindings.
Voor talen die dynamisch worden getypt, zoals Java script, gebruikt u de dataType
eigenschap in de function.jsin het bestand.For languages that are dynamically typed such as JavaScript, use the dataType
property in the function.json file. Als u bijvoorbeeld de inhoud van een HTTP-aanvraag in binaire indeling wilt lezen, stelt u het volgende in dataType
binary
: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 opties voor dataType
zijn stream
en string
.Other options for dataType
are stream
and string
.
Bindings richtingBinding direction
Alle triggers en bindingen hebben een direction
eigenschap in de function.jsvoor het volgende bestand:All triggers and bindings have a direction
property in the function.json file:
- Voor triggers is de richting altijd
in
For triggers, the direction is alwaysin
- Invoer-en uitvoer bindingen gebruiken
in
enout
Input and output bindings usein
andout
- Sommige bindingen bieden ondersteuning voor een speciale richting
inout
.Some bindings support a special directioninout
. Als u gebruiktinout
, is alleen de Geavanceerde editor beschikbaar via het tabblad integreren in de portal.If you useinout
, only the Advanced editor is available via the Integrate tab in the portal.
Wanneer u kenmerken in een klassen bibliotheek gebruikt om triggers en bindingen te configureren, wordt de richting in een kenmerk-constructor of afgeleid van het parameter type gegeven.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.
Bindingen aan een functie toevoegenAdd bindings to a function
U kunt uw functie verbinden met andere services met behulp van invoer-of uitvoer bindingen.You can connect your function to other services by using input or output bindings. Voeg een binding toe door de specifieke definities aan uw functie toe te voegen.Add a binding by adding its specific definitions to your function. Zie bindingen toevoegen aan een bestaande functie in azure functionsvoor meer informatie.To learn how, see Add bindings to an existing function in Azure Functions.
Ondersteunde bindingenSupported bindings
Dit tabel geeft de bindingen weer die worden ondersteund in de belangrijkste versies van de Azure Functions-runtime:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:
TypeType | 1.x1.x | 2.x en hoger12.x and higher1 | TriggerTrigger | InvoerInput | UitvoerOutput |
---|---|---|---|---|---|
Blob StorageBlob storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | ✔✔ |
Azure Cosmos DBAzure Cosmos DB | ✔✔ | ✔✔ | ✔✔ | ✔✔ | ✔✔ |
Dapr3Dapr3 | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Event GridEvent Grid | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Event HubsEvent Hubs | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
HTTP en webhooksHTTP & webhooks | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
IoT HubIoT Hub | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Kafka2Kafka2 | ✔✔ | ✔✔ | ✔✔ | ||
Mobile AppsMobile Apps | ✔✔ | ✔✔ | ✔✔ | ||
Notification HubsNotification Hubs | ✔✔ | ✔✔ | |||
Queue StorageQueue storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
RabbitMQ2RabbitMQ2 | ✔✔ | ✔✔ | ✔✔ | ||
SendGridSendGrid | ✔✔ | ✔✔ | ✔✔ | ||
Service BusService Bus | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
SignalRSignalR | ✔✔ | ✔✔ | ✔✔ | ||
Table StorageTable storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
TimerTimer | ✔✔ | ✔✔ | ✔✔ | ||
TwilioTwilio | ✔✔ | ✔✔ | ✔✔ |
1 Vanaf de rumtime 2.x moeten alle bindingen, behalve HTTP en Timer, worden geregistreerd.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Raadpleeg Bindingextensies registreren.See Register binding extensions.
2 Triggers worden niet ondersteund in het Consumption-abonnement.2 Triggers aren't supported in the Consumption plan. Vereist runtime-gestuurde triggers.Requires runtime-driven triggers.
3 Alleen ondersteund in Kubernetes, IoT Edge en andere zelf-gehoste modi.3 Supported only in Kubernetes, IoT Edge, and other self-hosted modes only.
Zie ondersteunde talenvoor informatie over welke bindingen in Preview zijn of die zijn goedgekeurd voor productie gebruik.For information about which bindings are in preview or are approved for production use, see Supported languages.
Code voorbeelden voor bindingenBindings code examples
Gebruik de volgende tabel om voor beelden te vinden van specifieke bindings typen die laten zien hoe u met bindingen kunt werken in uw-functies.Use the following table to find examples of specific binding types that show you how to work with bindings in your functions. Kies eerst het tabblad taal dat overeenkomt met uw project.First, choose the language tab that corresponds to your project.
ServiceService | VoorbeeldenExamples | VoorbeeldenSamples |
---|---|---|
Blob StorageBlob storage | TriggerTrigger InvoerInput UitvoerOutput |
KoppelingLink |
Azure Cosmos DBAzure Cosmos DB | TriggerTrigger InvoerInput UitvoerOutput |
KoppelingLink |
Event GridEvent Grid | TriggerTrigger UitvoerOutput |
KoppelingLink |
Event HubsEvent Hubs | TriggerTrigger UitvoerOutput |
|
IoT HubIoT Hub | TriggerTrigger UitvoerOutput |
|
HTTPHTTP | TriggerTrigger | KoppelingLink |
Queue StorageQueue storage | TriggerTrigger UitvoerOutput |
KoppelingLink |
RabbitMQRabbitMQ | TriggerTrigger UitvoerOutput |
|
SendGridSendGrid | UitvoerOutput | |
Service BusService Bus | TriggerTrigger UitvoerOutput |
KoppelingLink |
SignalRSignalR | TriggerTrigger InvoerInput UitvoerOutput |
|
Table StorageTable storage | InvoerInput UitvoerOutput |
|
TimerTimer | TriggerTrigger | KoppelingLink |
TwilioTwilio | UitvoerOutput | KoppelingLink |
Aangepaste bindingenCustom bindings
U kunt aangepaste invoer-en uitvoer bindingen maken.You can create custom input and output bindings. Bindingen moeten zijn geschreven in .NET, maar kunnen worden gebruikt vanuit elke ondersteunde taal.Bindings must be authored in .NET, but can be consumed from any supported language. Zie aangepaste invoer-en uitvoer bindingen makenvoor meer informatie over het maken van aangepaste bindingen.For more information about creating custom bindings, see Creating custom input and output bindings.
ResourcesResources
- Expressies en patronen bindenBinding expressions and patterns
- De functie retour waarde van Azure gebruikenUsing the Azure Function return value
- Een bindings expressie registrerenHow to register a binding expression
- TestenTesting:
- Bindings fouten verwerkenHandling binding errors