Dela via


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.

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.

Mer information finns i utlösarexemplet.

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 niska veze. 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 niska veze 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 truepå 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-portalen.
riktning Måste anges till "in". Den här egenskapen anges automatiskt när du skapar utlösaren i Azure-portalen.
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 niska veze. 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 niska veze 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 truepå 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.

Användning

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 ServiceBusReceivedMessagekan 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 ServiceBusMessageActionsanger 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-niska veze. Du kan också ange Connection egenskapen för att ange namnet på en programinställning som innehåller Service Bus-niska veze som ska användas.

Det inkommande Service Bus-meddelandet är tillgängligt via en ServiceBusQueueMessage eller ServiceBusTopicMessage -parameter.

Få åtkomst till kön eller ämnesmeddelandet som det första argumentet till din funktion. Service Bus-meddelandet skickas till funktionen som antingen en sträng eller ett JSON-objekt.

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:

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 niska veze följer du stegen som visas i Hämta autentiseringsuppgifterna för hantering. Niska veze måste vara för ett Service Bus-namnområde, inte begränsat till en specifik kö eller ett visst ämne.

Den här niska veze 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 niska veze 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 niska veze 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.jsoneller 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.

Nästa steg