Concepten van Azure Functions-triggers en -bindingen
In dit artikel leert u de concepten op hoog niveau rondom functiestriggers en bindingen.
Triggers zorgen ervoor dat een functie wordt uitgevoerd. Een trigger definieert hoe een functie wordt aangeroepen en een functie moet precies één trigger 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 de toegang tot andere services voorkomen. 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.
Bekijk de volgende voorbeelden van hoe u verschillende functies kunt implementeren.
Voorbeeldscenario | Activator | Invoerbinding | Uitvoerbinding |
---|---|---|---|
Er wordt een nieuw wachtrijbericht binnengekomen waarmee een functie wordt uitgevoerd om naar een andere wachtrij te schrijven. | Rij* | Geen | Rij* |
Een geplande taak leest de inhoud van Blob Storage en maakt een nieuw Azure Cosmos DB-document. | Timer | Blob Storage | Azure Cosmos DB |
Event Grid wordt gebruikt om een afbeelding uit Blob Storage en een document van Azure Cosmos DB te lezen om een e-mailbericht te verzenden. | Event Grid | Blob Storage en Azure Cosmos DB | SendGrid |
Een webhook die gebruikmaakt van Microsoft Graph om een Excel-blad bij te werken. | HTTP | Geen | Microsoft Graph |
* Vertegenwoordigt verschillende wachtrijen
Deze voorbeelden zijn niet volledig bedoeld, maar worden gegeven om te laten zien hoe u triggers en bindingen samen kunt gebruiken.
Trigger- en bindingsdefinities
Triggers en bindingen worden verschillend gedefinieerd, afhankelijk van de ontwikkeltaal.
Taal | Triggers en bindingen worden geconfigureerd door... |
---|---|
C#-klassebibliotheek | Methoden en parameters decoreren met C#-kenmerken |
Java | methoden en parameters decoreren met Java-aantekeningen |
JavaScript/PowerShell/Python/TypeScript | function.json (schema) bijwerken |
Voor talen die afhankelijk zijn van function.json, 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 + test van uw functie. Met Visual Studio Code kunt u eenvoudig een binding toevoegen aan een function.json-bestand door een handige set prompts te volgen.
In .NET en Java definieert het parametertype het gegevenstype voor invoergegevens. Gebruik string
bijvoorbeeld om te binden aan de tekst van een wachtrijtrigger, een bytematrix die als binair moet worden gelezen en een aangepast type om de serialisatie van een object ongedaan te maken. Omdat .NET-klassenbibliotheekfuncties en Java-functies niet afhankelijk zijn van function.json voor bindingsdefinities, kunnen ze niet worden gemaakt en bewerkt in de portal. Het bewerken van de C#-portal is gebaseerd op C#-script, dat gebruikmaakt van function.json in plaats van kenmerken.
Zie Connect functions to Azure services using bindings(bindingen) voor meer informatie over het toevoegen van bindingen aan bestaande functies.
Gebruik de dataType
eigenschap in het function.json-bestand voor talen die dynamisch zijn getypt, zoals JavaScript. Als u bijvoorbeeld de inhoud van een HTTP-aanvraag in binaire indeling wilt lezen, stelt u in dataType
binary
op:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
Andere opties zijn dataType
stream
en string
.
Bindingsrichting
Alle triggers en bindingen hebben een direction
eigenschap in het function.json-bestand :
- Voor triggers is de richting altijd
in
- Gebruik van invoer- en uitvoerbindingen
in
enout
- Sommige bindingen ondersteunen een speciale richting
inout
. Als u gebruiktinout
, 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 kenmerkconstructor 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 een bestaande functie in Azure Functions voor meer informatie.
Ondersteunde bindingen
Dit tabel geeft de bindingen weer die worden ondersteund in de belangrijkste versies van de Azure Functions-runtime:
Type | 1.x1 | 2.x en hoger2 | Activator | Invoer | Uitvoer |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP en webhooks | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobile Apps | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Table Storage | ✔ | ✔ | ✔ | ✔ | |
Timer | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 Ondersteuning wordt beëindigd voor versie 1.x van de Azure Functions-runtime op 14 september 2026. We raden u ten zeerste aan uw apps te migreren naar versie 4.x voor volledige ondersteuning.
2 Vanaf de runtime van versie 2.x moeten alle bindingen behalve HTTP en Timer worden geregistreerd. Raadpleeg Bindingextensies registreren.
3 Triggers worden niet ondersteund in het verbruiksabonnement. Vereist runtime-gestuurde triggers.
4 Alleen ondersteund in Kubernetes, IoT Edge en andere zelf-hostende modi.
Zie Ondersteunde talen voor informatie over welke bindingen in preview zijn of zijn goedgekeurd voor productiegebruik.
Specifieke versies van bindingsuitbreidingen worden alleen ondersteund terwijl de onderliggende service-SDK wordt ondersteund. Wijzigingen in ondersteuning in de onderliggende service-SDK-versie zijn van invloed op de ondersteuning voor de verbruikende extensie.
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.
Bindingscode voor C# is afhankelijk van het specifieke procesmodel.
Service | Voorbeelden | Voorbeelden |
---|---|---|
Blob-opslag | Trigger Invoer Uitvoer |
Koppeling |
Azure Cosmos DB | Trigger Invoer Uitvoer |
Koppeling |
Azure Data Explorer | Invoer Uitvoer |
Koppeling |
Azure SQL | 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 |
Service | Voorbeelden | Voorbeelden |
---|---|---|
Blob-opslag | Trigger Invoer Uitvoer |
Koppeling |
Azure Cosmos DB | Trigger Invoer Uitvoer |
Koppeling |
Azure Data Explorer | Invoer Uitvoer |
Koppeling |
Azure SQL | Trigger Invoer Uitvoer |
|
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 |
Service | Voorbeelden | Voorbeelden |
---|---|---|
Blob-opslag | Trigger Invoer Uitvoer |
Koppeling |
Azure Cosmos DB | Trigger Invoer Uitvoer |
Koppeling |
Azure Data Explorer | Invoer Uitvoer |
|
Azure SQL | 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 |
Service | Voorbeelden | Voorbeelden |
---|---|---|
Blob-opslag | Trigger Invoer Uitvoer |
Koppeling |
Azure Cosmos DB | Trigger Invoer Uitvoer |
Koppeling |
Azure SQL | Trigger Invoer Uitvoer |
|
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 |
Bindingscode voor Python is afhankelijk van de python-modelversie.
Service | Voorbeelden | Voorbeelden |
---|---|---|
Blob-opslag | Trigger Invoer Uitvoer |
Koppeling |
Azure Cosmos DB | Trigger Invoer Uitvoer |
Koppeling |
Azure Data Explorer | Invoer Uitvoer |
|
Azure SQL | 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 gemaakt 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
- Bindingexpressies en patronen
- De retourwaarde van de Azure-functie gebruiken
- Een bindingsexpressie registreren
- Testing:
- Bindingsfouten afhandelen