Azure Service Bus-bindningar för Azure Functions

Azure Functions integreras med Azure Service Bus via utlösare och bindningar. När du integrerar Service Bus kan du skapa funktioner som reagerar på och skickar kö- eller ämnesmeddelanden.

Åtgärd Typ
Kör en funktion när Service Bus en kö eller ett ämnesmeddelande skapas Utlösare
Skicka Azure Service Bus meddelanden Utdatabindning

Lägga till i din Functions-app

Anteckning

Den Service Bus bindningen stöder för närvarande inte autentisering med hjälp av en hanterad identitet. Använd i stället en Service Bus signatur för delad åtkomst.

Functions 2.x och senare

När du arbetar med utlösaren och bindningarna måste du referera till rätt paket. NuGet-paketet används för .NET-klassbibliotek medan tilläggspaketet används för alla andra programtyper.

Språk Lägg till efter... Kommentarer
C# Installera [NuGet-paketet], version 4.x
C#-skript, Java, JavaScript, Python, PowerShell Registrera tilläggspaketet [Azure Tools-tillägget] rekommenderas att använda med Visual Studio Code.
C#-skript (endast online i Azure Portal) Lägga till en bindning Om du vill uppdatera befintliga bindningstillägg utan att behöva publicera om funktionsappen kan du [gå till Uppdatera dina tillägg.]

Service Bus 5.x och senare

En ny version av Service Bus är tillgänglig som förhandsversion av NuGet-paketet. I den här förhandsversionen introduceras möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. För .NET-program ändras även de typer som du kan binda till, vilket ersätter typerna från och med nyare typer från Microsoft.ServiceBus.Messaging Microsoft.Azure.ServiceBus Azure.Messaging.ServiceBus.

Anteckning

Förhandsversionspaketet ingår inte i ett tilläggspaketet och måste installeras manuellt. För .NET-appar lägger du till en referens till paketet. Information om alla andra apptyper finns i [Uppdatera dina tillägg.]

Functions 1.x

Functions 1.x-appar har automatiskt en referens till Microsoft.Azure.WebJobs NuGet-paketet, version 2.x.

host.jspå inställningar

I det här avsnittet beskrivs de globala konfigurationsinställningar som är tillgängliga för den här bindningen i version 2.x och senare. Exemplet på host.jsnedan innehåller bara inställningarna för den här bindningen. Mer information om globala konfigurationsinställningar finns i host.jsreferens för Azure Functions version.

Anteckning

En referens för host.jspå i Functions 1.x finns ihost.jspå referens för Azure Functions 1.x.

{
    "version": "2.0",
    "extensions": {
        "serviceBus": {
            "prefetchCount": 100,
            "messageHandlerOptions": {
                "autoComplete": true,
                "maxConcurrentCalls": 32,
                "maxAutoRenewDuration": "00:05:00"
            },
            "sessionHandlerOptions": {
                "autoComplete": false,
                "messageWaitTimeout": "00:00:30",
                "maxAutoRenewDuration": "00:55:00",
                "maxConcurrentSessions": 16
            },
            "batchOptions": {
                "maxMessageCount": 1000,
                "operationTimeout": "00:01:00",
                "autoComplete": true
            }
        }
    }
}

Om du isSessionsEnabled har angett till används true sessionHandlerOptions . Om du isSessionsEnabled har angett till används false messageHandlerOptions .

Egenskap Standardvärde Description
prefetchCount 0 Hämtar eller anger antalet meddelanden som meddelandemottagaren kan begära samtidigt.
messageHandlerOptions.maxAutoRenewDuration 00:05:00 Den maximala varaktighet inom vilken meddelandelåset förnyas automatiskt.
messageHandlerOptions.autoComplete true Om utlösaren automatiskt ska anropa complete efter bearbetningen, eller om funktionskoden ska anropa complete manuellt.

Inställningen till false stöds endast i C#.

Om det är inställt på slutför utlösaren meddelandet automatiskt om funktionskörningen har slutförts true och annars lämnar den meddelandet.

När det här false är inställt på ansvarar du för att anropa MessageReceiver-metoder för att slutföra, lämna eller ta bort meddelandet. Om ett undantagsfel (och ingen av MessageReceiver metoderna anropas) kvarstår låset. När låset upphör att gälla köas meddelandet igen med den DeliveryCount stegvisa ökningen och låset förnyas automatiskt.

I icke-C#-funktioner resulterar undantag i funktionen i abandonAsync körningsanropen i bakgrunden. Om inget undantag inträffar completeAsync anropas i bakgrunden.
messageHandlerOptions.maxConcurrentCalls 16 Det maximala antalet samtidiga anrop till återanropet som meddelandepumpen ska initiera per skalad instans. Som standard bearbetar Functions-körningen flera meddelanden samtidigt.
sessionHandlerOptions.maxConcurrentSessions 2000 Det maximala antalet sessioner som kan hanteras samtidigt per skalad instans.
batchOptions.maxMessageCount 1000 Det maximala antalet meddelanden som skickas till funktionen när de utlöses.
batchOptions.operationTimeout 00:01:00 Ett tidsintervallvärde uttryckt i hh:mm:ss .
batchOptions.autoComplete true Se beskrivningen ovan för messageHandlerOptions.autoComplete .

Ytterligare inställningar för version 5.x+

Exemplet host.jsfilen nedan innehåller endast inställningarna för version 5.0.0 och senare av Service Bus tillägget.

{
    "version": "2.0",
    "extensions": {
        "serviceBus": {
            "clientRetryOptions":{
                "mode": "exponential",
                "tryTimeout": "00:01:00",
                "delay": "00:00:00.80",
                "maxDelay": "00:01:00",
                "maxRetries": 3
            },
            "prefetchCount": 0,
            "autoCompleteMessages": true,
            "maxAutoLockRenewalDuration": "00:05:00",
            "maxConcurrentCalls": 16,
            "maxConcurrentSessions": 8,
            "maxMessages": 1000,
            "sessionIdleTimeout": "00:01:00"
        }
    }
}

När du använder Service Bus-tillägget version 5.x och senare stöds följande globala konfigurationsinställningar utöver 2.x-inställningarna i ServiceBusOptions .

Egenskap Standardvärde Description
prefetchCount 0 Hämtar eller anger antalet meddelanden som meddelandemottagaren kan begära samtidigt.
autoCompleteMessages true Anger om meddelanden ska slutföras automatiskt efter en lyckad körning av funktionen och ska användas i stället för autoComplete konfigurationsinställningen.
maxAutoLockRenewalDuration 00:05:00 Detta bör användas i stället för maxAutoRenewDuration
maxConcurrentCalls 16 Det maximala antalet samtidiga anrop till återanropet som meddelandepumpen ska initiera per skalad instans. Som standard bearbetar Functions-körningen flera meddelanden samtidigt.
maxConcurrentSessions 8 Det maximala antalet sessioner som kan hanteras samtidigt per skalad instans.
maxMessages 1000 Det maximala antalet meddelanden som skickas till varje funktionsanrop. Detta gäller endast för funktioner som tar emot en batch med meddelanden.
sessionIdleTimeout saknas Den maximala väntetiden för att ett meddelande ska tas emot för den aktiva sessionen. När den här tiden har gått ut stänger processorn sessionen och försöker bearbeta en annan session.

Inställningar för återförsök

Förutom konfigurationsegenskaperna ovan när du använder version 5.x och senare av Service Bus-tillägget kan du också konfigurera RetryOptions från ServiceBusOptions . De här inställningarna avgör om en misslyckad åtgärd ska försökas igen och i så fall hur lång tid det tar att vänta mellan återförsöken. Alternativen styr också hur lång tid som tillåts för att ta emot meddelanden och andra interaktioner med Service Bus tjänsten.

Egenskap Standardvärde Description
mode Exponentiellt Den metod som ska användas för att beräkna fördröjningar för återförsök. Standardläget för exponentiellt försöker igen med en fördröjning baserat på en backend-strategi där varje försök ökar den varaktighet som väntar innan ett nytt försök görs. Läget Fixed försöker igen med fasta intervall där varje fördröjning har en konsekvent varaktighet.
tryTimeout 00:01:00 Den maximala varaktigheten för att vänta på en åtgärd per försök.
Försening 00:00:00.80 Fördröjningen eller backend-faktorn som ska tillämpas mellan återförsök.
maxDelay 00:01:00 Maximal fördröjning för att tillåta mellan återförsök
maxRetries 3 Det maximala antalet återförsök innan den associerade åtgärden övervägs har misslyckats.

Nästa steg