Azure Service Bus-utlösare för Azure Functions
Använd Service Bus-utlösaren för att svara på meddelanden från en Service Bus-kö eller ett ämne. Från och med tilläggsversion 3.1.0 kan du utlösa i en sessionsaktiverad kö eller ett ämne.
Information om konfiguration och konfigurationsinformation finns i översikten.
Service Bus-skalningsbeslut för förbruknings- och Premium-abonnemangen fattas baserat på målbaserad skalning. Mer information finns i Målbaserad skalning.
Viktigt!
Den här artikeln använder flikar för att stödja flera versioner av Node.js programmeringsmodellen. V4-modellen är allmänt tillgänglig och är utformad för att ha en mer flexibel och intuitiv upplevelse för JavaScript- och TypeScript-utvecklare. Mer information om hur v4-modellen fungerar finns i utvecklarguiden för Azure Functions Node.js. Mer information om skillnaderna mellan v3 och v4 finns i migreringsguiden.
Azure Functions stöder två programmeringsmodeller för Python. Hur du definierar dina bindningar beror på din valda programmeringsmodell.
Med programmeringsmodellen Python v2 kan du definiera bindningar med hjälp av dekoratörer direkt i python-funktionskoden. Mer information finns i utvecklarguiden för Python.
Den här artikeln stöder båda programmeringsmodellerna.
Exempel
En C#-funktion kan skapas med något av följande C#-lägen:
- Isolerad arbetsmodell: Kompilerad C#-funktion som körs i en arbetsprocess som är isolerad från körningen. Isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på LTS- och icke-LTS-versioner .NET och .NET Framework. Tillägg för isolerade arbetsprocessfunktioner använder
Microsoft.Azure.Functions.Worker.Extensions.*
namnområden. - Processmodell: Kompilerad C#-funktion som körs i samma process som Functions-körningen. I en variant av den här modellen kan Functions köras med C#-skript, vilket främst stöds för redigering av C#-portalen. Tillägg för in-process-funktioner använder
Microsoft.Azure.WebJobs.Extensions.*
namnområden.
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
Den här koden definierar och initierar ILogger
:
private readonly ILogger<ServiceBusReceivedMessageFunctions> _logger;
public ServiceBusReceivedMessageFunctions(ILogger<ServiceBusReceivedMessageFunctions> logger)
{
_logger = logger;
}
Det här exemplet visar en C#-funktion som tar emot ett enda Service Bus-kömeddelande och skriver det till loggarna:
[Function(nameof(ServiceBusReceivedMessageFunction))]
[ServiceBusOutput("outputQueue", Connection = "ServiceBusConnection")]
public string ServiceBusReceivedMessageFunction(
[ServiceBusTrigger("queue", Connection = "ServiceBusConnection")] ServiceBusReceivedMessage message)
{
_logger.LogInformation("Message ID: {id}", message.MessageId);
_logger.LogInformation("Message Body: {body}", message.Body);
_logger.LogInformation("Message Content-Type: {contentType}", message.ContentType);
var outputMessage = $"Output message created at {DateTime.Now}";
return outputMessage;
}
Det här exemplet visar en C#-funktion som tar emot flera Service Bus-kömeddelanden i en enda batch och skriver var och en till loggarna:
[Function(nameof(ServiceBusReceivedMessageBatchFunction))]
public void ServiceBusReceivedMessageBatchFunction(
[ServiceBusTrigger("queue", Connection = "ServiceBusConnection", IsBatched = true)] ServiceBusReceivedMessage[] messages)
{
foreach (ServiceBusReceivedMessage message in messages)
{
_logger.LogInformation("Message ID: {id}", message.MessageId);
_logger.LogInformation("Message Body: {body}", message.Body);
_logger.LogInformation("Message Content-Type: {contentType}", message.ContentType);
}
}
Det här exemplet visar en C#-funktion som tar emot flera Service Bus-kömeddelanden, skriver den till loggarna och sedan löser meddelandet som slutfört:
[Function(nameof(ServiceBusMessageActionsFunction))]
public async Task ServiceBusMessageActionsFunction(
[ServiceBusTrigger("queue", Connection = "ServiceBusConnection", AutoCompleteMessages = false)]
ServiceBusReceivedMessage message,
ServiceBusMessageActions messageActions)
{
_logger.LogInformation("Message ID: {id}", message.MessageId);
_logger.LogInformation("Message Body: {body}", message.Body);
_logger.LogInformation("Message Content-Type: {contentType}", message.ContentType);
// Complete the message
await messageActions.CompleteMessageAsync(message);
}
Följande Java-funktion använder anteckningen @ServiceBusQueueTrigger
från Java Functions-körningsbiblioteket för att beskriva konfigurationen för en Service Bus-köutlösare. Funktionen hämtar meddelandet som placerats i kön och lägger till det i loggarna.
@FunctionName("sbprocessor")
public void serviceBusProcess(
@ServiceBusQueueTrigger(name = "msg",
queueName = "myqueuename",
connection = "myconnvarname") String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
Java-funktioner kan också utlösas när ett meddelande läggs till i ett Service Bus-ämne. I följande exempel används kommentaren @ServiceBusTopicTrigger
för att beskriva utlösarkonfigurationen.
@FunctionName("sbtopicprocessor")
public void run(
@ServiceBusTopicTrigger(
name = "message",
topicName = "mytopicname",
subscriptionName = "mysubscription",
connection = "ServiceBusConnection"
) String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
I följande exempel visas en TypeScript-funktion för Service Bus-utlösare. Funktionen läser meddelandemetadata och loggar ett Service Bus-kömeddelande.
import { app, InvocationContext } from '@azure/functions';
export async function serviceBusQueueTrigger1(message: unknown, context: InvocationContext): Promise<void> {
context.log('Service bus queue function processed message:', message);
context.log('EnqueuedTimeUtc =', context.triggerMetadata.enqueuedTimeUtc);
context.log('DeliveryCount =', context.triggerMetadata.deliveryCount);
context.log('MessageId =', context.triggerMetadata.messageId);
}
app.serviceBusQueue('serviceBusQueueTrigger1', {
connection: 'MyServiceBusConnection',
queueName: 'testqueue',
handler: serviceBusQueueTrigger1,
});
I följande exempel visas en JavaScript-funktion för Service Bus-utlösare. Funktionen läser meddelandemetadata och loggar ett Service Bus-kömeddelande.
const { app } = require('@azure/functions');
app.serviceBusQueue('serviceBusQueueTrigger1', {
connection: 'MyServiceBusConnection',
queueName: 'testqueue',
handler: (message, context) => {
context.log('Service bus queue function processed message:', message);
context.log('EnqueuedTimeUtc =', context.triggerMetadata.enqueuedTimeUtc);
context.log('DeliveryCount =', context.triggerMetadata.deliveryCount);
context.log('MessageId =', context.triggerMetadata.messageId);
},
});
I följande exempel visas en Service Bus-utlösarbindning i en function.json-fil och en PowerShell-funktion som använder bindningen.
Här är bindningsdata i filen function.json :
{
"bindings": [
{
"name": "mySbMsg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "mytopic",
"subscriptionName": "mysubscription",
"connection": "AzureServiceBusConnectionString"
}
]
}
Här är funktionen som körs när ett Service Bus-meddelande skickas.
param([string] $mySbMsg, $TriggerMetadata)
Write-Host "PowerShell ServiceBus queue trigger function processed message: $mySbMsg"
I följande exempel visas hur du läser ett Service Bus-kömeddelande via en utlösare. Exemplet beror på om du använder python-programmeringsmodellen v1 eller v2.
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="ServiceBusQueueTrigger1")
@app.service_bus_queue_trigger(arg_name="msg",
queue_name="<QUEUE_NAME>",
connection="<CONNECTION_SETTING>")
def test_function(msg: func.ServiceBusMessage):
logging.info('Python ServiceBus queue trigger processed message: %s',
msg.get_body().decode('utf-8'))
I följande exempel visas hur du läser ett Service Bus-köämne via en utlösare.
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="ServiceBusTopicTrigger1")
@app.service_bus_topic_trigger(arg_name="message",
topic_name="TOPIC_NAME",
connection="CONNECTION_SETTING",
subscription_name="SUBSCRIPTION_NAME")
def test_function(message: func.ServiceBusMessage):
message_body = message.get_body().decode("utf-8")
logging.info("Python ServiceBus topic trigger processed message.")
logging.info("Message Body: " + message_body)
Attribut
C#-bibliotek i både processprocess och isolerad arbetsprocess använder attributet ServiceBusTriggerAttribute för att definiera funktionsutlösaren. C#-skriptet använder i stället en function.json konfigurationsfil enligt beskrivningen i C#-skriptguiden.
I följande tabell förklaras de egenskaper som du kan ange med hjälp av det här utlösarattributet:
Property | beskrivning |
---|---|
QueueName | Namnet på kön som ska övervakas. Ange endast om du övervakar en kö, inte för ett ämne. |
TopicName | Namnet på det ämne som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
SubscriptionName | Namnet på prenumerationen som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
Anslutning | Namnet på en appinställning eller inställningssamling som anger hur du ansluter till Service Bus. Se Anslutningar. |
IsBatched | Meddelanden levereras i batchar. Kräver en matris eller samlingstyp. |
IsSessionsEnabled | true om du ansluter till en sessionsmedveten kö eller prenumeration. false annars, vilket är standardvärdet. |
AutoCompleteMessages | true om utlösaren automatiskt ska slutföra meddelandet efter ett lyckat anrop. false om det inte ska göra det, till exempel när du hanterar meddelandelikvid i kod. Om det inte uttryckligen anges baseras beteendet på konfigurationen autoCompleteMessages i host.json . |
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values
samlingen.
Dekoratörer
Gäller endast för python v2-programmeringsmodellen.
För Python v2-funktioner som definierats med hjälp av en dekoratör, följande egenskaper på service_bus_queue_trigger
:
Property | beskrivning |
---|---|
arg_name |
Namnet på variabeln som representerar kön eller ämnesmeddelandet i funktionskoden. |
queue_name |
Namnet på kön som ska övervakas. Ange endast om du övervakar en kö, inte för ett ämne. |
connection |
Namnet på en appinställning eller inställningssamling som anger hur du ansluter till Service Bus. Se Anslutningar. |
Information om Python-funktioner som definierats med hjälp av function.json finns i avsnittet Konfiguration .
Kommentarer
Med anteckningen ServiceBusQueueTrigger
kan du skapa en funktion som körs när ett Service Bus-kömeddelande skapas. Tillgängliga konfigurationsalternativ omfattar följande egenskaper:
Property | Beskrivning |
---|---|
Namn | Namnet på variabeln som representerar kön eller ämnesmeddelandet i funktionskoden. |
queueName | Namnet på kön som ska övervakas. Ange endast om du övervakar en kö, inte för ett ämne. |
topicName | Namnet på det ämne som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
subscriptionName | Namnet på prenumerationen som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
samband | Namnet på en appinställning eller inställningssamling som anger hur du ansluter till Service Bus. Se Anslutningar. |
Med anteckningen ServiceBusTopicTrigger
kan du ange ett ämne och en prenumeration för att rikta in dig på vilka data som utlöser funktionen.
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values
samlingen.
Konfiguration
Gäller endast programmeringsmodellen Python v1.
I följande tabell förklaras de egenskaper som du kan ange för objektet options
som skickas app.serviceBusQueue()
till metoderna eller app.serviceBusTopic()
.
Property | beskrivning |
---|---|
queueName | Namnet på kön som ska övervakas. Ange endast om du övervakar en kö, inte för ett ämne. |
topicName | Namnet på det ämne som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
subscriptionName | Namnet på prenumerationen som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
samband | Namnet på en appinställning eller inställningssamling som anger hur du ansluter till Service Bus. Se Anslutningar. |
accessRights | Åtkomsträttigheter för anslutningssträng. Tillgängliga värden är manage och listen . Standardvärdet är manage , vilket anger att connection har behörigheten Hantera . Om du använder en anslutningssträng som inte har behörigheten Hantera anger du accessRights till "lyssna". Annars kan Functions-körningen misslyckas med att utföra åtgärder som kräver hanteringsrättigheter. I Azure Functions version 2.x och senare är den här egenskapen inte tillgänglig eftersom den senaste versionen av Service Bus SDK inte stöder hanteringsåtgärder. |
isSessionsEnabled | true om du ansluter till en sessionsmedveten kö eller prenumeration. false annars, vilket är standardvärdet. |
komplettera automatiskt | Måste vara true för icke-C#-funktioner, vilket innebär att utlösaren antingen automatiskt ska anropas färdigt efter bearbetningen eller att funktionskoden manuellt anropar slutförd.När den är inställd true på slutför utlösaren meddelandet automatiskt om funktionskörningen har slutförts och avger meddelandet på annat sätt.Undantag i funktionen resulterar i körningsanropen abandonAsync i bakgrunden. Om inget undantag inträffar anropas det completeAsync i bakgrunden. Den här egenskapen är endast tillgänglig i Azure Functions 2.x och senare. |
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values
samlingen.
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i filen function.json .
function.json egenskap | beskrivning |
---|---|
typ | Måste anges till serviceBusTrigger . Den här egenskapen anges automatiskt när du skapar utlösaren i Azure Portal. |
riktning | Måste anges till "in". Den här egenskapen anges automatiskt när du skapar utlösaren i Azure Portal. |
Namn | Namnet på variabeln som representerar kön eller ämnesmeddelandet i funktionskoden. |
queueName | Namnet på kön som ska övervakas. Ange endast om du övervakar en kö, inte för ett ämne. |
topicName | Namnet på det ämne som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
subscriptionName | Namnet på prenumerationen som ska övervakas. Ange endast om du övervakar ett ämne, inte för en kö. |
samband | Namnet på en appinställning eller inställningssamling som anger hur du ansluter till Service Bus. Se Anslutningar. |
accessRights | Åtkomsträttigheter för anslutningssträng. Tillgängliga värden är manage och listen . Standardvärdet är manage , vilket anger att connection har behörigheten Hantera . Om du använder en anslutningssträng som inte har behörigheten Hantera anger du accessRights till "lyssna". Annars kan Functions-körningen misslyckas med att utföra åtgärder som kräver hanteringsrättigheter. I Azure Functions version 2.x och senare är den här egenskapen inte tillgänglig eftersom den senaste versionen av Service Bus SDK inte stöder hanteringsåtgärder. |
isSessionsEnabled | true om du ansluter till en sessionsmedveten kö eller prenumeration. false annars, vilket är standardvärdet. |
komplettera automatiskt | Måste vara true för icke-C#-funktioner, vilket innebär att utlösaren antingen automatiskt ska anropas färdigt efter bearbetningen eller att funktionskoden manuellt anropar slutförd.När den är inställd true på slutför utlösaren meddelandet automatiskt om funktionskörningen har slutförts och avger meddelandet på annat sätt.Undantag i funktionen resulterar i körningsanropen abandonAsync i bakgrunden. Om inget undantag inträffar anropas det completeAsync i bakgrunden. Den här egenskapen är endast tillgänglig i Azure Functions 2.x och senare. |
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values
samlingen.
Se avsnittet Exempel för fullständiga exempel.
Förbrukning
Följande parametertyper stöds av alla C#-modaliteter och tilläggsversioner:
Typ | Beskrivning |
---|---|
System.String | Använd när meddelandet är enkel text. |
byte[] | Används för binära datameddelanden. |
Objekt | När ett meddelande innehåller JSON försöker Functions deserialisera JSON-data till en känd oformaterad CLR-objekttyp. |
Meddelandespecifika parametertyper innehåller ytterligare meddelandemetadata. De specifika typer som stöds av Service Bus-utlösaren beror på functions-körningsversionen, tilläggspaketversionen och den C#-modalitet som används.
När du vill att funktionen ska bearbeta ett enda meddelande kan Service Bus-utlösaren binda till följande typer:
Typ | Beskrivning |
---|---|
string |
Meddelandet som en sträng. Använd när meddelandet är enkel text. |
byte[] |
Byte för meddelandet. |
JSON-serialiserbara typer | När en händelse innehåller JSON-data försöker Functions deserialisera JSON-data till en vanlig CLR-objekttyp (POCO). |
ServiceBusReceivedMessage1 | Meddelandeobjektet. När du binder till ServiceBusReceivedMessage kan du även inkludera en parameter av typen ServiceBusMessageActions1,2 för att utföra åtgärder för att lösa meddelanden. |
När du vill att funktionen ska bearbeta en batch med meddelanden kan Service Bus-utlösaren binda till följande typer:
Typ | Beskrivning |
---|---|
T[] där T är en av de enskilda meddelandetyperna |
En matris med händelser från batchen. Varje post representerar en händelse. När du binder till ServiceBusReceivedMessage[] kan du även inkludera en parameter av typen ServiceBusMessageActions1,2 för att utföra åtgärder för att lösa meddelanden. |
1 Om du vill använda dessa typer måste du referera till Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.14.1 eller senare och de vanliga beroendena för SDK-typbindningar.
2 När du använder ServiceBusMessageActions
anger du AutoCompleteMessages
egenskapen för utlösarattributet till false
. Detta förhindrar körningen från att försöka slutföra meddelanden efter ett lyckat funktionsanrop.
När egenskapen Connection
inte har definierats letar Functions efter en appinställning med namnet AzureWebJobsServiceBus
, som är standardnamnet för Service Bus-anslutningssträng. Du kan också ange Connection
egenskapen för att ange namnet på en programinställning som innehåller Service Bus-anslutningssträng som ska användas.
Det inkommande Service Bus-meddelandet är tillgängligt via en ServiceBusQueueMessage
eller ServiceBusTopicMessage
-parameter.
Service Bus-instansen är tillgänglig via parametern som konfigurerats i function.json-filens namnegenskap.
Kömeddelandet är tillgängligt för funktionen via en parameter som anges som func.ServiceBusMessage
. Service Bus-meddelandet skickas till funktionen som antingen en sträng eller ett JSON-objekt.
Ett fullständigt exempel finns i avsnittet exempel.
anslutningar
Egenskapen connection
är en referens till miljökonfigurationen som anger hur appen ska ansluta till Service Bus. Den kan ange:
- Namnet på en programinställning som innehåller en anslutningssträng
- Namnet på ett delat prefix för flera programinställningar, som tillsammans definierar en identitetsbaserad anslutning.
Om det konfigurerade värdet både är en exakt matchning för en enskild inställning och en prefixmatchning för andra inställningar används den exakta matchningen.
Connection string
För att få en anslutningssträng följer du stegen som visas i Hämta autentiseringsuppgifterna för hantering. Anslutningssträng måste vara för ett Service Bus-namnområde, inte begränsat till en specifik kö eller ett visst ämne.
Den här anslutningssträng ska lagras i en programinställning med ett namn som matchar det värde som anges av connection
egenskapen för bindningskonfigurationen.
Om namnet på appinställningen börjar med "AzureWebJobs" kan du bara ange resten av namnet. Om du till exempel anger connection
"MyServiceBus" letar Functions-körningen efter en appinställning med namnet "AzureWebJobsMyServiceBus". Om du lämnar connection
tomt använder Functions-körningen standardinställningen Service Bus anslutningssträng i appinställningen med namnet "AzureWebJobsServiceBus".
Identitetsbaserade anslutningar
Om du använder version 5.x eller senare av tillägget kan du i stället för att använda en anslutningssträng med en hemlighet låta appen använda en Microsoft Entra-identitet. För att göra detta definierar du inställningar under ett vanligt prefix som mappar till connection
egenskapen i utlösar- och bindningskonfigurationen.
I det här läget kräver tillägget följande egenskaper:
Property | Miljövariabelmall | beskrivning | Exempelvärde |
---|---|---|---|
Fullständigt kvalificerat namnområde | <CONNECTION_NAME_PREFIX>__fullyQualifiedNamespace |
Det fullständigt kvalificerade Service Bus-namnområdet. | <>service_bus_namespace.servicebus.windows.net |
Ytterligare egenskaper kan anges för att anpassa anslutningen. Se Vanliga egenskaper för identitetsbaserade anslutningar.
Kommentar
När du använder Azure App Configuration eller Key Vault för att ange inställningar för hanterade identitetsanslutningar bör inställningsnamn använda en giltig nyckelavgränsare, till exempel :
eller /
i stället __
för att säkerställa att namnen matchas korrekt.
Exempel: <CONNECTION_NAME_PREFIX>:fullyQualifiedNamespace
När identitetsbaserade anslutningar finns i Azure Functions-tjänsten använder de en hanterad identitet. Den systemtilldelade identiteten används som standard, även om en användartilldelad identitet kan anges med credential
egenskaperna och clientID
. Observera att det inte går att konfigurera en användartilldelad identitet med ett resurs-ID. När den körs i andra sammanhang, till exempel lokal utveckling, används utvecklaridentiteten i stället, även om den kan anpassas. Se Lokal utveckling med identitetsbaserade anslutningar.
Bevilja behörighet till identiteten
Den identitet som används måste ha behörighet att utföra de avsedda åtgärderna. För de flesta Azure-tjänster innebär det att du måste tilldela en roll i Azure RBAC med hjälp av antingen inbyggda eller anpassade roller som ger dessa behörigheter.
Viktigt!
Vissa behörigheter kan exponeras av måltjänsten som inte är nödvändiga för alla kontexter. Om möjligt följer du principen om minsta behörighet och beviljar identiteten endast nödvändiga privilegier. Om appen till exempel bara behöver kunna läsa från en datakälla använder du en roll som bara har behörighet att läsa. Det skulle vara olämpligt att tilldela en roll som också tillåter skrivning till tjänsten, eftersom detta skulle vara överdriven behörighet för en läsåtgärd. På samma sätt vill du se till att rolltilldelningen endast är begränsad till de resurser som behöver läsas.
Du måste skapa en rolltilldelning som ger åtkomst till dina ämnen och köer vid körning. Hanteringsroller som Ägare räcker inte. Följande tabell visar inbyggda roller som rekommenderas när du använder Service Bus-tillägget i normal drift. Programmet kan kräva ytterligare behörigheter baserat på den kod du skriver.
Bindningstyp | Exempel på inbyggda roller |
---|---|
Utlösare1 | Azure Service Bus-datamottagare, Azure Service Bus-dataägare |
Utdatabindning | Azure Service Bus-datasändare |
1 För att utlösa från Service Bus-ämnen måste rolltilldelningen ha ett effektivt omfång för Service Bus-prenumerationsresursen. Om bara ämnet ingår uppstår ett fel. Vissa klienter, som Azure-portalen, exponerar inte Service Bus-prenumerationsresursen som ett omfång för rolltilldelning. I sådana fall kan Azure CLI användas i stället. Mer information finns i Inbyggda Azure-roller för Azure Service Bus.
Giftmeddelanden
Hantering av giftmeddelanden kan inte styras eller konfigureras i Azure Functions. Service Bus hanterar själva giftmeddelandena.
PeekLock-beteende
Functions-körningen tar emot ett meddelande i PeekLock-läge.
Som standard anropar Complete
körningen meddelandet om funktionen har slutförts eller anropar Abandon
om funktionen misslyckas. Du kan inaktivera automatisk slutförande med egenskapen autoCompleteMessages
i host.json
.
Som standard anropar Complete
körningen meddelandet om funktionen har slutförts eller anropar Abandon
om funktionen misslyckas. Du kan inaktivera automatisk slutförande med egenskapen i host.json
eller via en egenskap i utlösarattributet.autoCompleteMessages
Du bör inaktivera automatisk slutförande om funktionskoden hanterar meddelandelikvideringen.
Om funktionen körs längre än tidsgränsen PeekLock
förnyas låset automatiskt så länge funktionen körs. maxAutoRenewDuration
Kan konfigureras i host.json, som mappar till ServiceBusProcessor.MaxAutoLockRenewalDuration. Standardvärdet för den här inställningen är 5 minuter.
Meddelandemetadata
Med meddelandespecifika typer kan du enkelt hämta metadata som egenskaper för objektet. Dessa egenskaper beror på functions-körningsversionen, tilläggspaketversionen och den C#-modalitet som används.
Dessa egenskaper är medlemmar i klassen ServiceBusReceivedMessage .
Property | Type | Beskrivning |
---|---|---|
ApplicationProperties |
ApplicationProperties |
Egenskaper som angetts av avsändaren. |
ContentType |
string |
En innehållstypsidentifierare som används av avsändaren och mottagaren för programspecifik logik. |
CorrelationId |
string |
Korrelations-ID:t. |
DeliveryCount |
Int32 |
Antalet leveranser. |
EnqueuedTime |
DateTime |
Den köade tiden i UTC. |
ScheduledEnqueueTimeUtc |
DateTime |
Den schemalagda kötiden i UTC. |
ExpiresAt |
DateTime |
Förfallotiden i UTC. |
MessageId |
string |
Ett användardefinierat värde som Service Bus kan använda för att identifiera dubblettmeddelanden, om det är aktiverat. |
ReplyTo |
string |
Svaret på köadressen. |
Subject |
string |
Den programspecifika etikett som kan användas i stället för metadataegenskapen Label . |
To |
string |
Skicka till adress. |