Översikt över utlösare och bindningar för Azure Queue Storage för Azure Functions

Azure Functions kan köras när nya Azure Queue Storage-meddelanden skapas och kan skriva kömeddelanden i en funktion.

Åtgärd Typ
Kör en funktion när lagringsdata ändras i kön Utlösare
Skriva kölagringsmeddelanden Utdatabindning

Installera tillägget

Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:

Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.

Funktionerna i tillägget varierar beroende på tilläggsversionen:

Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.

Med den här versionen kan du binda till typer från Azure.Storage.Queues.

Lägg till tillägget i projektet genom att installera NuGet-paketet version 5.x.

Använda .NET CLI:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues --version 5.0.0

Kommentar

Azure Blobs, Azure Queues och Azure Tables använder nu separata tillägg och refereras individuellt. Om du till exempel vill använda utlösare och bindningar för alla tre tjänsterna i din isolerade .NET-processapp bör du lägga till följande paket i projektet:

Tidigare levererades tilläggen tillsammans som Microsoft.Azure.Functions.Worker.Extensions.Storage, version 4.x. Samma paket har också en version på 5.x som endast refererar till delade paket för blobar och köer. När du uppgraderar paketreferenserna från äldre versioner kan du därför behöva referera till det nya NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.Tables . När du refererar till dessa nyare delade paket kontrollerar du också att du inte refererar till en äldre version av det kombinerade lagringspaketet, eftersom detta resulterar i konflikter från två definitioner av samma bindningar.

Installera paket

Blob Storage-bindningen är en del av ett tilläggspaket som anges i din host.json projektfil. Du kan behöva ändra det här paketet för att ändra versionen av bindningen, eller om paket inte redan är installerade. Mer information finns i tilläggspaketet.

Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.

Du kan lägga till den här versionen av tillägget från förhandsgranskningstilläggspaketet v3 genom att lägga till eller ersätta följande kod i host.json filen:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Mer information finns i Uppdatera dina tillägg.

Bindningstyper

Vilka bindningstyper som stöds för .NET beror på både tilläggsversionen och C#-körningsläget, vilket kan vara något av följande:

Ett isolerat arbetsprocessklassbibliotek kompilerade C#-funktioner körs i en process som är isolerad från körningen.

Välj en version för att se information om bindningstyp för läget och versionen.

Den isolerade arbetsprocessen stöder parametertyper enligt tabellerna nedan. Stöd för bindning till typer från Azure.Storage.Queues finns i förhandsversionen.

Köutlösare

Köutlösaren kan binda till följande typer:

Typ Beskrivning
string Meddelandeinnehållet som en sträng. Använd när meddelandet är enkel text..
byte[] Byte för meddelandet.
JSON-serialiserbara typer När ett kömeddelande innehåller JSON-data försöker Functions deserialisera JSON-data till en oformaterad TYP av CLR-objekt (POCO).
QueueMessage1 Meddelandet.
BinaryData1 Byte för meddelandet.

1 Om du vill använda dessa typer måste du referera till Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues 5.2.0 eller senare och de vanliga beroendena för SDK-typbindningar.

Bindning av köutdata

När du vill att funktionen ska skriva ett enda meddelande kan köutdatabindningen binda till följande typer:

Typ Beskrivning
string Meddelandeinnehållet som en sträng. Använd när meddelandet är enkel text.
byte[] Byte för meddelandet.
JSON-serialiserbara typer Ett objekt som representerar innehållet i ett JSON-meddelande. Functions försöker serialisera en vanlig CLR-objekttyp (POCO) till JSON-data.

När du vill att funktionen ska skriva flera meddelanden kan köutdatabindningen binda till följande typer:

Typ Beskrivning
T[] där T är en av de enskilda meddelandetyperna En matris som innehåller innehåll för flera meddelanden. Varje post representerar ett meddelande.

För andra utdatascenarier skapar och använder du typer från Azure.Storage.Queues direkt.

host.json inställningar

I det här avsnittet beskrivs de konfigurationsinställningar som är tillgängliga för den här bindningen i version 2.x och senare. Inställningar i filen host.json gäller för alla funktioner i en funktionsappinstans. Exemplet host.json filen nedan innehåller endast version 2.x+-inställningarna för den här bindningen. Mer information om konfigurationsinställningar för funktionsappar i version 2.x och senare versioner finns i host.json referens för Azure Functions.

Kommentar

En referens för host.json i Functions 1.x finns i host.json referens för Azure Functions 1.x.

{
    "version": "2.0",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout" : "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8,
            "messageEncoding": "base64"
        }
    }
}
Property Standardvärde beskrivning
maxPollingInterval 00:01:00 Det maximala intervallet mellan kömätningar. Det minsta intervallet är 00:00:00.100 (100 ms). Intervallen ökar upp till maxPollingInterval. Standardvärdet maxPollingInterval för är 00:01:00 (1 min). maxPollingInterval får inte vara mindre än 00:00:00.100 (100 ms). I Functions 2.x och senare är datatypen en TimeSpan. I Functions 1.x är den i millisekunder.
visibilityTimeout 00:00:00 Tidsintervallet mellan återförsök när bearbetningen av ett meddelande misslyckas.
batchSize 16 Antalet kömeddelanden som Functions-körningen hämtar samtidigt och processer parallellt. När talet som bearbetas kommer ned till newBatchThresholdhämtar körningen en annan batch och börjar bearbeta dessa meddelanden. Så det maximala antalet samtidiga meddelanden som bearbetas per funktion är batchSize plus newBatchThreshold. Den här gränsen gäller separat för varje köutlöst funktion.

Om du vill undvika parallell körning för meddelanden som tas emot i en kö kan du ange batchSize till 1. Den här inställningen eliminerar dock samtidighet så länge funktionsappen endast körs på en enda virtuell dator (VM). Om funktionsappen skalas ut till flera virtuella datorer kan varje virtuell dator köra en instans av varje köutlöst funktion.

Maxvärdet batchSize är 32.
maxDequeueCount 5 Antalet gånger du försöker bearbeta ett meddelande innan du flyttar det till giftkön.
newBatchThreshold N*batchSize/2 När antalet meddelanden som bearbetas samtidigt minskar till det här antalet, hämtar körningen en annan batch.

N representerar antalet tillgängliga vCPU:er när de körs i App Service- eller Premium-abonnemang. Dess värde är 1 för förbrukningsplanen.
messageEncoding base64 Den här inställningen är endast tillgänglig i tilläggspaketet version 5.0.0 och senare. Den representerar kodningsformatet för meddelanden. Giltiga värden är base64 och none.

Nästa steg