Azure Functions triggers en bindingsconcepten

In dit artikel leert u de algemene concepten rondom functietriggers en -bindingen.

Triggers zorgen ervoor dat een functie wordt uitgevoerd. Een trigger definieert hoe een functie wordt aangeroepen en een functie precies één trigger moet hebben. Aan triggers zijn gegevens gekoppeld. Meestal is dit de nettolading waarmee de functie is geactiveerd.

Binding met een functie is een manier om een andere resource declaratief te verbinden met de functie; bindingen kunnen worden verbonden als invoerbindingen, uitvoerbindingen of beide. Gegevens van bindingen worden als parameters doorgegeven aan de functie.

U kunt verschillende bindingen mixen en matchen om aan uw behoeften te voldoen. Bindingen zijn optioneel en een functie kan een of meerdere invoer- en/of uitvoerbindingen hebben.

Met triggers en bindingen kunt u hardcoding van toegang tot andere services vermijden. Uw functie ontvangt gegevens (bijvoorbeeld de inhoud van een wachtrijbericht) in functieparameters. U verzendt gegevens (bijvoorbeeld om een ​​wachtrijbericht te maken) door de retourwaarde van de functie te gebruiken.

Kijk eens naar de volgende voorbeelden van hoe u verschillende functies kunt implementeren.

Voorbeeldscenario Trigger Invoerbinding Uitvoerbinding
Er wordt een nieuw wachtrijbericht ontvangen waarin een functie wordt uitgevoerd om naar een andere wachtrij te schrijven. Wachtrij* Geen Wachtrij*
Een geplande taak leest Blob Storage inhoud en maakt een nieuw Cosmos DB document. Timer Blob Storage Cosmos DB
De Event Grid wordt gebruikt om een afbeelding te lezen uit Blob Storage en een document van Cosmos DB om een e-mail te verzenden. Event Grid Blob Storage en Cosmos DB SendGrid
Een webhook die gebruikmaakt van Microsoft Graph om een Excel-werkblad bij te werken. HTTP Geen Microsoft Graph

* Vertegenwoordigt verschillende wachtrijen

Deze voorbeelden zijn niet volledig bedoeld, maar zijn bedoeld om te illustreren hoe u triggers en bindingen samen kunt gebruiken.

Trigger- en bindingsdefinities

Triggers en bindingen worden verschillend gedefinieerd, afhankelijk van de ontwikkelingstaal.

Taal Triggers en bindingen worden geconfigureerd door...
C#-klassebibliotheek      methoden en parameters voor het gebruik van parameters met C#-kenmerken
Java      methoden en parameters voor het gebruik van parameters met Java-aantekeningen
JavaScript/PowerShell/Python/TypeScript      bijwerken function.jsin (schema)

Voor talen die afhankelijk zijn van function.js, biedt de portal een gebruikersinterface voor het toevoegen van bindingen op het tabblad Integratie. U kunt het bestand ook rechtstreeks in de portal bewerken op het tabblad Code + testen van uw functie. Visual Studio code kunt u eenvoudig een binding toevoegen aan een function.jsbestand door een handige set prompts te volgen.

In .NET en Java definieert het parametertype het gegevenstype voor invoergegevens. Gebruik bijvoorbeeld om te binden aan de tekst van een wachtrijtrigger, een bytematrix om als binair te lezen en een aangepast type om de serialiseren naar een string object te deser serialiseren. Omdat .NET-klassebibliotheekfuncties en Java-functies niet afhankelijk zijn van function.js voor bindingsdefinities, kunnen ze niet worden gemaakt en bewerkt in de portal. C#-portalbewerking is gebaseerd op C#-script, dat gebruikmaakt van function.jsin plaats van kenmerken.

Zie Functies verbinden met Azure-services met behulp van bindingen voor meer informatie over het toevoegen van bindingen aan bestaande functies.

Voor talen die dynamisch worden getypt, zoals JavaScript, gebruikt u de eigenschap dataType in hetfunction.jsin het bestand. Als u bijvoorbeeld de inhoud van een HTTP-aanvraag in binaire indeling wilt lezen, stelt u in dataType op binary :

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

Andere opties voor dataType zijn stream en string .

Bindingsrichting

Alle triggers en bindingen hebben een direction eigenschap in hetfunction.jsbestand:

  • Voor triggers is de richting altijd in
  • Invoer- en uitvoerbindingen gebruiken in en out
  • Sommige bindingen ondersteunen een speciale inout richting. Als u inout gebruikt, is alleen de geavanceerde editor beschikbaar via het tabblad Integreren in de portal.

Wanneer u kenmerken in een klassebibliotheek gebruikt om triggers en bindingen te configureren, wordt de richting opgegeven in een kenmerkcon constructor of afgeleid van het parametertype.

Bindingen toevoegen aan een functie

U kunt uw functie verbinden met andere services met behulp van invoer- of uitvoerbindingen. Voeg een binding toe door de specifieke definities toe te voegen aan uw functie. Zie Bindingen toevoegen aan eenbestaande functie in Azure Functions .

Ondersteunde bindingen

Dit tabel geeft de bindingen weer die worden ondersteund in de belangrijkste versies van de Azure Functions-runtime:

Type 1.x 2.x en hoger1 Trigger Invoer Uitvoer
Blob Storage
Azure Cosmos DB
Azure SQL (preview)
Dapr3
Event Grid
Event Hubs
HTTP en webhooks
IoT Hub
Kafka2
Mobile Apps
Notification Hubs
Queue Storage
RabbitMQ2
SendGrid
Service Bus
SignalR
Table Storage
Timer
Twilio

1 Vanaf de rumtime 2.x moeten alle bindingen, behalve HTTP en Timer, worden geregistreerd. Raadpleeg Bindingextensies registreren.

2 Triggers worden niet ondersteund in het Consumption-abonnement. Vereist runtime-gestuurde triggers.

3 Alleen ondersteund in Kubernetes, IoT Edge en andere zelf-gehoste modi.

Zie Ondersteunde talen voor meer informatie over welke bindingen in preview zijn of goedgekeurd zijn voor productiegebruik.

Voorbeelden van bindingscode

Gebruik de volgende tabel om voorbeelden te vinden van specifieke bindingstypen die laten zien hoe u met bindingen in uw functies kunt werken. Kies eerst het taaltabblad dat overeenkomt met uw project.

Service Voorbeelden Voorbeelden
Blob Storage Trigger
Invoer
Uitvoer
Koppeling
Azure Cosmos DB Trigger
Invoer
Uitvoer
Koppeling
Event Grid Trigger
Uitvoer
Koppeling
Event Hubs Trigger
Uitvoer
IoT Hub Trigger
Uitvoer
HTTP Trigger Koppeling
Queue Storage Trigger
Uitvoer
Koppeling
RabbitMQ Trigger
Uitvoer
SendGrid Uitvoer
Service Bus Trigger
Uitvoer
Koppeling
SignalR Trigger
Invoer
Uitvoer
Table Storage Invoer
Uitvoer
Timer Trigger Koppeling
Twilio Uitvoer Koppeling

Aangepaste bindingen

U kunt aangepaste invoer- en uitvoerbindingen maken. Bindingen moeten worden geschreven in .NET, maar kunnen worden gebruikt vanuit elke ondersteunde taal. Zie Aangepaste invoer- en uitvoerbindingen maken voor meer informatie over het maken van aangepaste bindingen.

Resources

Volgende stappen