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 inFor triggers, the direction is always in
  • Invoer-en uitvoer bindingen gebruiken in en outInput and output bindings use in and out
  • Sommige bindingen bieden ondersteuning voor een speciale richting inout .Some bindings support a special direction inout. Als u gebruikt inout , is alleen de Geavanceerde editor beschikbaar via het tabblad integreren in de portal.If you use inout, 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

Volgende stappenNext steps