Utlösare och bindningar i Azure Functions
I den här artikeln lär du dig de övergripande begreppen kring funktionsutlösare och bindningar.
Utlösare gör att en funktion körs. En utlösare definierar hur en funktion anropas och funktionen kan bara ha en utlösare. Utlösare har associerade data, vilka vanligtvis är nyttolasten för funktionen.
Bindning till en funktion är ett sätt att deklarativt ansluta en annan resurs till funktionen. bindningar kan anslutas som indatabindningar, utdatabindningar eller båda. Data från bindningar skickas som parametrar till funktionen.
Du kan blanda och matcha olika bindningar så att de passar dina behov. Bindningar är valfria och en funktion kan ha en eller flera indata- och/eller utdatabindningar.
Med utlösare och bindningar kan du undvika hårdkodning av åtkomst till andra tjänster. Funktionen tar emot data (till exempel innehållet i ett kömeddelande) i funktionsparametrar. Du kan skicka data (t.ex. för att skapa ett kömeddelande) med hjälp av returvärdet för funktionen.
Tänk på följande exempel på hur du kan implementera olika funktioner.
Exempelscenario | Utlösare | Indatabindning | Utdatabindning |
---|---|---|---|
Ett nytt kömeddelande tas emot som kör en funktion för att skriva till en annan kö. | Kö* | None | Kö* |
Ett schemalagt jobb läser Blob Storage-innehåll och skapar ett nytt Azure Cosmos DB-dokument. | Timer | Blob Storage | Azure Cosmos DB |
Event Grid används för att läsa en bild från Blob Storage och ett dokument från Azure Cosmos DB för att skicka ett e-postmeddelande. | Event Grid | Blob Storage och Azure Cosmos DB | SendGrid |
En webhook som använder Microsoft Graph för att uppdatera ett Excel-blad. | HTTP | None | Microsoft Graph |
* Representerar olika köer
De här exemplen är inte avsedda att vara uttömmande, men tillhandahålls för att illustrera hur du kan använda utlösare och bindningar tillsammans.
Utlösar- och bindningsdefinitioner
Utlösare och bindningar definieras på olika sätt beroende på utvecklingsspråket.
Språk | Utlösare och bindningar konfigureras av... |
---|---|
C#-klassbibliotek | dekorera metoder och parametrar med C#-attribut |
Java | dekorera metoder och parametrar med Java-anteckningar |
JavaScript/PowerShell/Python/TypeScript | uppdatera function.json (schema) |
För språk som är beroende av function.json tillhandahåller portalen ett användargränssnitt för att lägga till bindningar på fliken Integrering . Du kan också redigera filen direkt i portalen på fliken Kod + test i funktionen. Med Visual Studio Code kan du enkelt lägga till en bindning i en function.json fil genom att följa en praktisk uppsättning frågor.
I .NET och Java definierar parametertypen datatypen för indata. Använd till exempel string
för att binda till texten i en köutlösare, en bytematris som ska läsas som binär och en anpassad typ för att av-serialisera till ett objekt. Eftersom .NET-klassbiblioteksfunktioner och Java-funktioner inte förlitar sig på function.json för bindningsdefinitioner kan de inte skapas och redigeras i portalen. C#-portalredigering baseras på C#-skript, som använder function.json i stället för attribut.
Mer information om hur du lägger till bindningar till befintliga funktioner finns i Ansluta funktioner till Azure-tjänster med bindningar.
För språk som skrivs dynamiskt, till exempel JavaScript, använder du dataType
egenskapen i filen function.json . Om du till exempel vill läsa innehållet i en HTTP-begäran i binärt format anger du dataType
till binary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
Andra alternativ för dataType
är stream
och string
.
Bindningsriktning
Alla utlösare och bindningar har en direction
egenskap i filen function.json :
- För utlösare är riktningen alltid
in
- Indata- och utdatabindningar använder
in
ochout
- Vissa bindningar stöder en särskild riktning
inout
. Om du använderinout
är endast avancerad redigerare tillgänglig via fliken Integrera i portalen.
När du använder attribut i ett klassbibliotek för att konfigurera utlösare och bindningar anges riktningen i en attributkonstruktor eller härleds från parametertypen.
Lägga till bindningar i en funktion
Du kan ansluta funktionen till andra tjänster med hjälp av indata- eller utdatabindningar. Lägg till en bindning genom att lägga till dess specifika definitioner i din funktion. Mer information finns i Lägga till bindningar till en befintlig funktion i Azure Functions.
Bindningar som stöds
Den här tabellen visar bindningar som stöds i huvudversionerna av Azure Functions-körningen:
Typ | 1.x1 | 2.x och högre2 | Utlösare | Indata | Utdata |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure-datautforskaren | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP & webhooks | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobile Apps | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Table Storage | ✔ | ✔ | ✔ | ✔ | |
Tidtagare | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 Supporten upphör för version 1.x av Azure Functions-körningen den 14 september 2026. Vi rekommenderar starkt att du migrerar dina appar till version 4.x för fullständig support.
2 Från och med version 2.x-körningen måste alla bindningar utom HTTP och Timer registreras. Se Registrera bindningstillägg.
3 Utlösare stöds inte i förbrukningsplanen. Kräver körningsdrivna utlösare.
4 Stöds endast i Kubernetes, IoT Edge och andra lägen med egen värd.
Information om vilka bindningar som är i förhandsversion eller som är godkända för produktionsanvändning finns i Språk som stöds.
Specifika versioner av bindningstillägg stöds bara medan den underliggande tjänst-SDK:en stöds. Ändringar av stöd i den underliggande SDK-versionen för tjänsten påverkar stödet för det förbrukande tillägget.
Kodexempel för bindningar
Använd följande tabell för att hitta exempel på specifika bindningstyper som visar hur du arbetar med bindningar i dina funktioner. Välj först den språkflik som motsvarar projektet.
Bindningskoden för C# beror på den specifika processmodellen.
Tjänst | Exempel | Exempel |
---|---|---|
Blobb-lagring | Utlösare Indata Output |
Länk |
Azure Cosmos DB | Utlösare Indata Output |
Länk |
Öppna Azure-datautforskaren | Indata Output |
Länk |
Azure SQL | Utlösare Indata Output |
Länk |
Event Grid | Utlösare Output |
Länk |
Event Hubs | Utlösare Output |
|
IoT-hubb | Utlösare Output |
|
HTTP | Utlösare | Länk |
Queue Storage | Utlösare Output |
Länk |
RabbitMQ | Utlösare Output |
|
SendGrid | Output | |
Service Bus | Utlösare Output |
Länk |
SignalR | Utlösare Indata Output |
|
Table Storage | Indata Output |
|
Timer | Utlösare | Länk |
Twilio | Output | Länk |
Tjänst | Exempel | Exempel |
---|---|---|
Blobb-lagring | Utlösare Indata Output |
Länk |
Azure Cosmos DB | Utlösare Indata Output |
Länk |
Öppna Azure-datautforskaren | Indata Output |
Länk |
Azure SQL | Utlösare Indata Output |
|
Event Grid | Utlösare Output |
Länk |
Event Hubs | Utlösare Output |
|
IoT-hubb | Utlösare Output |
|
HTTP | Utlösare | Länk |
Queue Storage | Utlösare Output |
Länk |
RabbitMQ | Utlösare Output |
|
SendGrid | Output | |
Service Bus | Utlösare Output |
Länk |
SignalR | Utlösare Indata Output |
|
Table Storage | Indata Output |
|
Timer | Utlösare | Länk |
Twilio | Output | Länk |
Tjänst | Exempel | Exempel |
---|---|---|
Blobb-lagring | Utlösare Indata Output |
Länk |
Azure Cosmos DB | Utlösare Indata Output |
Länk |
Öppna Azure-datautforskaren | Indata Output |
|
Azure SQL | Utlösare Indata Output |
Länk |
Event Grid | Utlösare Output |
Länk |
Event Hubs | Utlösare Output |
|
IoT-hubb | Utlösare Output |
|
HTTP | Utlösare | Länk |
Queue Storage | Utlösare Output |
Länk |
RabbitMQ | Utlösare Output |
|
SendGrid | Output | |
Service Bus | Utlösare Output |
Länk |
SignalR | Utlösare Indata Output |
|
Table Storage | Indata Output |
|
Timer | Utlösare | Länk |
Twilio | Output | Länk |
Tjänst | Exempel | Exempel |
---|---|---|
Blobb-lagring | Utlösare Indata Output |
Länk |
Azure Cosmos DB | Utlösare Indata Output |
Länk |
Azure SQL | Utlösare Indata Output |
|
Event Grid | Utlösare Output |
Länk |
Event Hubs | Utlösare Output |
|
IoT-hubb | Utlösare Output |
|
HTTP | Utlösare | Länk |
Queue Storage | Utlösare Output |
Länk |
RabbitMQ | Utlösare Output |
|
SendGrid | Output | |
Service Bus | Utlösare Output |
Länk |
SignalR | Utlösare Indata Output |
|
Table Storage | Indata Output |
|
Timer | Utlösare | Länk |
Twilio | Output | Länk |
Bindningskoden för Python beror på Python-modellversionen.
Tjänst | Exempel | Exempel |
---|---|---|
Blobb-lagring | Utlösare Indata Output |
Länk |
Azure Cosmos DB | Utlösare Indata Output |
Länk |
Öppna Azure-datautforskaren | Indata Output |
|
Azure SQL | Utlösare Indata Output |
Länk |
Event Grid | Utlösare Output |
Länk |
Event Hubs | Utlösare Output |
|
IoT-hubb | Utlösare Output |
|
HTTP | Utlösare | Länk |
Queue Storage | Utlösare Output |
Länk |
RabbitMQ | Utlösare Output |
|
SendGrid | Output | |
Service Bus | Utlösare Output |
Länk |
SignalR | Utlösare Indata Output |
|
Table Storage | Indata Output |
|
Timer | Utlösare | Länk |
Twilio | Output | Länk |
Anpassade bindningar
Du kan skapa anpassade in- och utdatabindningar. Bindningar måste skrivas i .NET, men kan användas från valfritt språk som stöds. Mer information om hur du skapar anpassade bindningar finns i Skapa anpassade indata- och utdatabindningar.
Resurser
- Bindningsuttryck och mönster
- Använda azure-funktionens returvärde
- Registrera ett bindningsuttryck
- Provning:
- Hantera bindningsfel