Utlösare och bindningar i Azure Functions

I den här artikeln får du lära dig de övergripande begreppen kring utlösare och bindningar för funktioner.

Utlösare gör att en funktion körs. En utlösare definierar hur en funktion anropas och en funktion måste ha exakt 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 dig följande exempel på hur du kan implementera olika funktioner.

Exempel på ett scenario Utlösare Indatabindning Utdatabindning
Ett nytt kömeddelande kommer som kör en funktion för att skriva till en annan kö. Kö* Ingen Kö*
Ett schemalagt jobb läser Innehållet i Blob Storage 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 Ingen Microsoft Graph

* Representerar olika köer

De här exemplen är inte avsedda att vara uttömmande, men de 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 olika 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 förlitar sig på 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 till 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 string till exempel 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 och out
  • Vissa bindningar stöder en särskild riktning inout. Om du använder inoutä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.x 2.x och högre1 Utlösare Indata Resultat
Blob Storage
Azure Cosmos DB
Azure SQL (förhandsversion)
Dapr3
Event Grid
Event Hubs
HTTP-webhooks &
IoT Hub
Kafka2
Mobile Apps
Notification Hubs
Queue Storage
RabbitMQ2
SendGrid
Service Bus
SignalR
Table Storage
Timer
Twilio

1 Från och med version 2.x måste alla bindningar utom HTTP och Timer registreras. Se Registrera bindningstillägg.

2 Utlösare stöds inte i förbrukningsplanen. Kräver körningsdrivna utlösare.

3 Stöds endast i Kubernetes, IoT Edge och andra lägen med egen värd.

Information om vilka bindningar som finns i förhandsversion eller är godkända för produktionsanvändning finns i Språk som stöds.

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.

Tjänst Exempel Exempel
Blob Storage Utdata för utlösare Länk
Azure Cosmos DB Utdata för utlösare Länk
Azure SQL (förhandsversion) Indatautdata Länk
Event Grid Utdata för utlösare Länk
Event Hubs Utdata för utlösare
IoT Hub Utdata för utlösare
HTTP Utlösare Länk
Queue Storage Utdata för utlösare Länk
RabbitMQ Utdata för utlösare
SendGrid Resultat
Service Bus Utdata för utlösare Länk
SignalR Utdata för utlösare
Table Storage Indatautdata
Timer Utlösare Länk
Twilio Resultat Länk

Anpassade bindningar

Du kan skapa anpassade indata- och utdatabindningar. Bindningar måste skapas 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

Nästa steg