Trigger služby Azure Service Bus pro Azure Functions
Pomocí triggeru služby Service Bus můžete reagovat na zprávy z fronty nebo tématu služby Service Bus. Počínaje rozšířením verze 3.1.0 můžete aktivovat frontu nebo téma s povolenou relací.
Informace o nastavení a konfiguraci najdete v přehledu.
Rozhodnutí o škálování služby Service Bus pro plány Consumption a Premium se provádějí na základě cílového škálování. Další informace najdete v tématu Škálování na základě cíle.
Důležité
Tento článek používá karty pro podporu více verzí programovacího modelu Node.js. Model v4 je obecně dostupný a je navržený tak, aby měl flexibilnější a intuitivnější prostředí pro vývojáře v JavaScriptu a TypeScriptu. Další podrobnosti o tom, jak model v4 funguje, najdete v příručce pro vývojáře služby Azure Functions Node.js. Další informace o rozdílech mezi v3 a v4 najdete v průvodci migrací.
Azure Functions podporuje dva programovací modely pro Python. Způsob, jakým definujete vazby, závisí na zvoleném programovacím modelu.
Programovací model Pythonu v2 umožňuje definovat vazby pomocí dekorátorů přímo v kódu funkce Pythonu. Další informace najdete v příručce pro vývojáře Pythonu.
Tento článek podporuje oba programovací modely.
Příklad
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework. Rozšíření pro izolované funkce pracovních procesů používají
Microsoft.Azure.Functions.Worker.Extensions.*
obory názvů. - Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions. Ve variantě tohoto modelu je možné spouštět funkce pomocí skriptování jazyka C#, což je podporováno především pro úpravy portálu C#. Rozšíření pro procesní funkce používají
Microsoft.Azure.WebJobs.Extensions.*
obory názvů.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
Tento kód definuje a inicializuje ILogger
:
private readonly ILogger<ServiceBusReceivedMessageFunctions> _logger;
public ServiceBusReceivedMessageFunctions(ILogger<ServiceBusReceivedMessageFunctions> logger)
{
_logger = logger;
}
Tento příklad ukazuje funkci jazyka C#, která přijímá jednu zprávu fronty služby Service Bus a zapisuje ji do protokolů:
[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;
}
Tento příklad ukazuje funkci jazyka C#, která přijímá více zpráv front služby Service Bus v jedné dávce a zapisuje je do protokolů:
[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);
}
}
Tento příklad ukazuje funkci jazyka C#, která přijímá více zpráv fronty služby Service Bus, zapíše ji do protokolů a pak zprávu vyřeší jako dokončenou:
[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);
}
Následující funkce Java používá poznámku @ServiceBusQueueTrigger
z knihovny modulu runtime funkcí Java k popisu konfigurace triggeru fronty service bus. Funkce vezme zprávu umístěnou ve frontě a přidá ji do protokolů.
@FunctionName("sbprocessor")
public void serviceBusProcess(
@ServiceBusQueueTrigger(name = "msg",
queueName = "myqueuename",
connection = "myconnvarname") String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
Funkce Java se dají aktivovat také při přidání zprávy do tématu služby Service Bus. Následující příklad používá poznámku @ServiceBusTopicTrigger
k popisu konfigurace triggeru.
@FunctionName("sbtopicprocessor")
public void run(
@ServiceBusTopicTrigger(
name = "message",
topicName = "mytopicname",
subscriptionName = "mysubscription",
connection = "ServiceBusConnection"
) String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
Následující příklad ukazuje funkci TypeScript triggeru služby Service Bus. Funkce čte metadata zpráv a protokoluje zprávu fronty služby Service Bus.
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,
});
Následující příklad ukazuje funkci JavaScriptu triggeru služby Service Bus. Funkce čte metadata zpráv a protokoluje zprávu fronty služby Service Bus.
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);
},
});
Následující příklad ukazuje vazbu triggeru služby Service Bus v souboru function.json a funkci PowerShellu, která používá vazbu.
Tady jsou data vazby v souboru function.json :
{
"bindings": [
{
"name": "mySbMsg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "mytopic",
"subscriptionName": "mysubscription",
"connection": "AzureServiceBusConnectionString"
}
]
}
Tady je funkce, která se spustí při odeslání zprávy služby Service Bus.
param([string] $mySbMsg, $TriggerMetadata)
Write-Host "PowerShell ServiceBus queue trigger function processed message: $mySbMsg"
Následující příklad ukazuje, jak číst zprávu fronty služby Service Bus prostřednictvím triggeru. Tento příklad závisí na tom, jestli používáte programovací model v1 nebo v2 Pythonu.
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'))
Následující příklad ukazuje, jak číst téma fronty služby Service Bus prostřednictvím triggeru.
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)
Atributy
Knihovny C# v procesu i izolovaného pracovního procesu používají atribut ServiceBusTriggerAttribute k definování triggeru funkce. Skript jazyka C# místo toho používá konfigurační soubor function.json, jak je popsáno v průvodci skriptováním jazyka C#.
Následující tabulka vysvětluje vlastnosti, které můžete nastavit pomocí tohoto atributu triggeru:
Vlastnost | Popis |
---|---|
QueueName | Název fronty, která se má monitorovat. Nastavit pouze v případě monitorování fronty, ne pro téma. |
Název tématu | Název tématu, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
SubscriptionName | Název předplatného, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
Připojení | Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit ke službě Service Bus. Viz Připojení. |
IsBatched | Zprávy se doručují v dávkách. Vyžaduje pole nebo typ kolekce. |
IsSessionsEnabled | true pokud se připojujete k frontě nebo předplatnému pracujícímu s relacemi. false jinak, což je výchozí hodnota. |
Automatické dokončování zpráv | true pokud by trigger měl zprávu po úspěšném vyvolání automaticky dokončit. false pokud by neměl, například při zpracování vypořádání zpráv v kódu. Pokud není explicitně nastaveno, chování bude založeno na autoCompleteMessages konfiguraci v host.json souboru . |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
Dekoratéry
Platí pouze pro programovací model Pythonu v2.
Pro funkce Pythonu v2 definované pomocí dekorátoru následující vlastnosti:service_bus_queue_trigger
Vlastnost | Popis |
---|---|
arg_name |
Název proměnné, která představuje zprávu fronty nebo tématu v kódu funkce. |
queue_name |
Název fronty, která se má monitorovat. Nastavit pouze v případě monitorování fronty, ne pro téma. |
connection |
Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit ke službě Service Bus. Viz Připojení. |
Informace o funkcích Pythonu definovaných pomocí function.json najdete v části Konfigurace .
Poznámky
Poznámka ServiceBusQueueTrigger
umožňuje vytvořit funkci, která se spustí při vytvoření zprávy fronty služby Service Bus. Dostupné možnosti konfigurace zahrnují následující vlastnosti:
Vlastnost | Popis |
---|---|
Jméno | Název proměnné, která představuje zprávu fronty nebo tématu v kódu funkce. |
queueName | Název fronty, která se má monitorovat. Nastavit pouze v případě monitorování fronty, ne pro téma. |
topicName | Název tématu, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
subscriptionName | Název předplatného, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
připojení | Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit ke službě Service Bus. Viz Připojení. |
Poznámka ServiceBusTopicTrigger
umožňuje určit téma a odběr, které cílí na to, jaká data funkci aktivují.
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
Další podrobnosti najdete v příkladu triggeru.
Konfigurace
Platí pouze pro programovací model Pythonu v1.
Následující tabulka vysvětluje vlastnosti, které můžete nastavit u objektu options
předaného metodám app.serviceBusQueue()
nebo app.serviceBusTopic()
metodám.
Vlastnost | Popis |
---|---|
queueName | Název fronty, která se má monitorovat. Nastavit pouze v případě monitorování fronty, ne pro téma. |
topicName | Název tématu, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
subscriptionName | Název předplatného, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
připojení | Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit ke službě Service Bus. Viz Připojení. |
accessRights | Přístupová práva pro připojovací řetězec Dostupné hodnoty jsou manage a listen . Výchozí hodnota je manage , což označuje, že connection má oprávnění Spravovat . Pokud používáte připojovací řetězec, který nemá oprávnění Spravovat, nastavte accessRights na "listen". Jinak může modul runtime služby Functions selhat při pokusu o provádění operací, které vyžadují práva pro správu. Ve službě Azure Functions verze 2.x a vyšší není tato vlastnost dostupná, protože nejnovější verze sady Service Bus SDK nepodporuje operace správy. |
isSessionsEnabled | true pokud se připojujete k frontě nebo předplatnému pracujícímu s relacemi. false jinak, což je výchozí hodnota. |
automatické dokončování | Musí být true pro funkce, které nejsou v jazyce C#, což znamená, že trigger by se měl po zpracování automaticky volat, nebo kód funkce ručně volá dokončené.Pokud je tato možnost nastavená na true hodnotu , trigger zprávu automaticky dokončí, pokud se spuštění funkce úspěšně dokončí, a jinak zprávu opustí.Výjimky ve funkci mají za následek volání abandonAsync modulu runtime na pozadí. Pokud nedojde k žádné výjimce, volá completeAsync se na pozadí. Tato vlastnost je dostupná pouze ve službě Azure Functions 2.x a vyšší. |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json .
vlastnost function.json | Popis |
---|---|
type | Musí být nastavena na serviceBusTrigger hodnotu . Tato vlastnost se nastaví automaticky při vytváření triggeru na webu Azure Portal. |
direction | Musí být nastavená na "in". Tato vlastnost se nastaví automaticky při vytváření triggeru na webu Azure Portal. |
Jméno | Název proměnné, která představuje zprávu fronty nebo tématu v kódu funkce. |
queueName | Název fronty, která se má monitorovat. Nastavit pouze v případě monitorování fronty, ne pro téma. |
topicName | Název tématu, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
subscriptionName | Název předplatného, které chcete monitorovat. Nastavte pouze v případě monitorování tématu, ne pro frontu. |
připojení | Název nastavení aplikace nebo nastavení kolekce, která určuje, jak se připojit ke službě Service Bus. Viz Připojení. |
accessRights | Přístupová práva pro připojovací řetězec Dostupné hodnoty jsou manage a listen . Výchozí hodnota je manage , což označuje, že connection má oprávnění Spravovat . Pokud používáte připojovací řetězec, který nemá oprávnění Spravovat, nastavte accessRights na "listen". Jinak může modul runtime služby Functions selhat při pokusu o provádění operací, které vyžadují práva pro správu. Ve službě Azure Functions verze 2.x a vyšší není tato vlastnost dostupná, protože nejnovější verze sady Service Bus SDK nepodporuje operace správy. |
isSessionsEnabled | true pokud se připojujete k frontě nebo předplatnému pracujícímu s relacemi. false jinak, což je výchozí hodnota. |
automatické dokončování | Musí být true pro funkce, které nejsou v jazyce C#, což znamená, že trigger by se měl po zpracování automaticky volat, nebo kód funkce ručně volá dokončené.Pokud je tato možnost nastavená na true hodnotu , trigger zprávu automaticky dokončí, pokud se spuštění funkce úspěšně dokončí, a jinak zprávu opustí.Výjimky ve funkci mají za následek volání abandonAsync modulu runtime na pozadí. Pokud nedojde k žádné výjimce, volá completeAsync se na pozadí. Tato vlastnost je dostupná pouze ve službě Azure Functions 2.x a vyšší. |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
Kompletní příklady najdete v části Příklad.
Využití
Všechny způsoby a verze rozšíření jazyka C# podporují následující typy parametrů:
Typ | Popis |
---|---|
System.String | Používá se, když je zpráva jednoduchá. |
byte[] | Používá se pro binární datové zprávy. |
Objekt | Když zpráva obsahuje JSON, functions se pokusí deserializovat data JSON do známého prostého starého typu objektu CLR. |
Typy parametrů specifických pro zasílání zpráv obsahují další metadata zpráv. Konkrétní typy podporované triggerem služby Service Bus závisí na verzi modulu runtime služby Functions, verzi balíčku rozšíření a použitém způsobu použití jazyka C#.
Pokud chcete, aby funkce zpracovávala jednu zprávu, může trigger služby Service Bus svázat s následujícími typy:
Typ | Popis |
---|---|
string |
Zpráva jako řetězec. Používá se, když je zpráva jednoduchá. |
byte[] |
Bajty zprávy. |
Serializovatelné typy JSON | Když událost obsahuje data JSON, functions se pokusí deserializovat data JSON do prostého typu objektu CLR (POCO). |
ServiceBusReceivedMessage1 | Objekt zprávy. Při vazbě na ServiceBusReceivedMessage , můžete volitelně zahrnout také parametr typu ServiceBusMessageActions1,2 pro provádění akcí vypořádání zpráv. |
Pokud chcete, aby funkce zpracovávala dávku zpráv, může trigger služby Service Bus svázat s následujícími typy:
Typ | Popis |
---|---|
T[] where T is one of the single message types |
Pole událostí z dávky. Každá položka představuje jednu událost. Při vazbě na ServiceBusReceivedMessage[] , můžete volitelně zahrnout také parametr typu ServiceBusMessageActions1,2 pro provádění akcí vypořádání zpráv. |
1 Pokud chcete použít tyto typy, musíte odkazovat na Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.14.1 nebo novější a běžné závislosti pro vazby typu sady SDK.
2 Při použití ServiceBusMessageActions
, nastavte AutoCompleteMessages
vlastnost trigger atributu na false
. To brání modulu runtime v pokusu o dokončení zpráv po úspěšném vyvolání funkce.
Connection
Pokud vlastnost není definovaná, funkce vyhledá nastavení aplikace s názvem AzureWebJobsServiceBus
, což je výchozí název pro připojovací řetězec služby Service Bus. Můžete také nastavit Connection
vlastnost pro zadání názvu nastavení aplikace, které obsahuje Service Bus připojovací řetězec použít.
Příchozí zpráva služby Service Bus je k dispozici prostřednictvím parametru nebo parametru ServiceBusQueueMessage
ServiceBusTopicMessage
.
Instance služby Service Bus je dostupná prostřednictvím parametru nakonfigurovaného ve vlastnosti názvu souboru function.json .
Zpráva fronty je k dispozici funkci prostřednictvím parametru zadaného jako func.ServiceBusMessage
. Zpráva služby Service Bus se předá do funkce jako řetězec nebo objekt JSON.
Úplný příklad najdete v části s příklady.
Propojení
Vlastnost connection
je odkazem na konfiguraci prostředí, která určuje, jak se má aplikace připojit ke službě Service Bus. Může zadat:
- Název nastavení aplikace obsahující připojovací řetězec
- Název sdílené předpony pro více nastavení aplikace, společně definující připojení založené na identitě.
Pokud je nakonfigurovaná hodnota přesná shoda pro jedno nastavení i shodu předpony pro jiná nastavení, použije se přesná shoda.
Connection string
Pokud chcete získat připojovací řetězec, postupujte podle kroků uvedených v části Získání přihlašovacích údajů pro správu. Připojovací řetězec musí být pro obor názvů služby Service Bus, nikoli pouze pro konkrétní frontu nebo téma.
Tato připojovací řetězec by měla být uložena v nastavení aplikace s názvem, který connection
odpovídá hodnotě určené vlastností konfigurace vazby.
Pokud název nastavení aplikace začíná na AzureWebJobs, můžete zadat pouze zbytek názvu. Pokud například nastavíte connection
"MyServiceBus", modul runtime služby Functions vyhledá nastavení aplikace s názvem AzureWebJobsMyServiceBus. Pokud necháte connection
prázdný, modul runtime Služby Functions použije výchozí připojovací řetězec Service Bus v nastavení aplikace s názvem AzureWebJobsServiceBus.
Připojení založená na identitách
Pokud používáte rozšíření verze 5.x nebo vyšší, můžete místo použití připojovací řetězec s tajným kódem použít aplikaci identitu Microsoft Entra. K tomu byste definovali nastavení pod běžnou předponou, která se mapuje na connection
vlastnost v konfiguraci triggeru a vazby.
V tomto režimu rozšíření vyžaduje následující vlastnosti:
Vlastnost | Šablona proměnné prostředí | Popis | Příklad hodnoty |
---|---|---|---|
Plně kvalifikovaný obor názvů | <CONNECTION_NAME_PREFIX>__fullyQualifiedNamespace |
Plně kvalifikovaný obor názvů služby Service Bus. | <>service_bus_namespace.servicebus.windows.net |
Pro přizpůsobení připojení je možné nastavit další vlastnosti. Viz Běžné vlastnosti pro připojení založená na identitě.
Poznámka:
Při použití konfigurace Aplikace Azure nebo služby Key Vault k poskytnutí nastavení pro připojení spravované identity by názvy nastavení měly používat platný oddělovač klíčů, například :
místo /
__
názvu, aby se názvy správně přeložily.
Například <CONNECTION_NAME_PREFIX>:fullyQualifiedNamespace
.
Při hostovaní ve službě Azure Functions používají připojení založená na identitách spravovanou identitu. Identita přiřazená systémem se používá ve výchozím nastavení, i když je možné zadat identitu přiřazenou uživatelem s vlastnostmi a clientID
vlastnostmicredential
. Všimněte si, že konfigurace identity přiřazené uživatelem s ID prostředku se nepodporuje . Při spuštění v jiných kontextech, jako je místní vývoj, se místo toho použije vaše identita vývojáře, i když je možné ji přizpůsobit. Viz Místní vývoj s připojeními založenými na identitách.
Udělení oprávnění identitě
Jakákoli identita, kterou používáte, musí mít oprávnění k provedení zamýšlených akcí. U většiny služeb Azure to znamená, že potřebujete přiřadit roli v Azure RBAC pomocí předdefinovaných nebo vlastních rolí, které tato oprávnění poskytují.
Důležité
Cílová služba může zpřístupnit některá oprávnění, která nejsou nutná pro všechny kontexty. Pokud je to možné, dodržujte zásadu nejnižšího oprávnění a udělte identitě pouze požadovaná oprávnění. Pokud například aplikace potřebuje jen číst ze zdroje dat, použijte roli, která má oprávnění jen ke čtení. Přiřazení role, která také umožňuje zápis do této služby, by bylo nevhodné, protože by to bylo nadměrné oprávnění pro operaci čtení. Podobně byste chtěli zajistit, aby přiřazení role bylo vymezeno pouze nad prostředky, které je potřeba číst.
Budete muset vytvořit přiřazení role, které poskytuje přístup k vašim tématům a frontám za běhu. Role správy, jako je vlastník , nestačí. Následující tabulka ukazuje předdefinované role, které se doporučují při použití rozšíření Service Bus v normálním provozu. Vaše aplikace může vyžadovat další oprávnění na základě kódu, který napíšete.
Typ vazby | Příklad předdefinovaných rolí |
---|---|
Aktivační událost1 | Příjemce dat služby Azure Service Bus, vlastník dat služby Azure Service Bus |
Výstupní vazba | Odesílatel dat služby Azure Service Bus |
1 Pro aktivaci z témat služby Service Bus musí přiřazení role mít efektivní rozsah nad prostředkem předplatného služby Service Bus. Pokud je zahrnuto pouze téma, dojde k chybě. Někteří klienti, například web Azure Portal, nezpřístupňují prostředek předplatného služby Service Bus jako obor pro přiřazení role. V takových případech se místo toho může použít Azure CLI. Další informace najdete v tématu Předdefinované role Azure pro Azure Service Bus.
Otrávené zprávy
Zpracování otrávených zpráv není možné řídit ani konfigurovat ve službě Azure Functions. Service Bus zpracovává samotné otrávené zprávy.
Chování PeekLock
Modul runtime Služby Functions obdrží zprávu v režimu PeekLock.
Ve výchozím nastavení modul runtime volá Complete
zprávu, pokud se funkce úspěšně dokončí, nebo volání Abandon
v případě selhání funkce. Automatické dokončování můžete zakázat pomocí autoCompleteMessages
vlastnosti v .host.json
Ve výchozím nastavení modul runtime volá Complete
zprávu, pokud se funkce úspěšně dokončí, nebo volání Abandon
v případě selhání funkce. Automatické dokončování můžete zakázat pomocí autoCompleteMessages
vlastnosti v host.json
atributu triggeru nebo prostřednictvím vlastnosti. Pokud kód funkce zpracovává vypořádání zpráv, měli byste automatické dokončování zakázat.
Pokud se funkce spustí déle, než PeekLock
je časový limit, zámek se automaticky obnoví, pokud je funkce spuštěná. Je maxAutoRenewDuration
konfigurovatelný v host.json, který mapuje na ServiceBusProcessor.MaxAutoLockRenewalDuration. Výchozí hodnota tohoto nastavení je 5 minut.
Metadata zpráv
Typy specifické pro zasílání zpráv umožňují snadno načíst metadata jako vlastnosti objektu. Tyto vlastnosti závisí na verzi modulu runtime služby Functions, verzi balíčku rozšíření a použitém způsobu použití jazyka C#.
Tyto vlastnosti jsou členy ServiceBusReceivedMessage třídy.
Vlastnost | Type | Popis |
---|---|---|
ApplicationProperties |
ApplicationProperties |
Vlastnosti nastavené odesílatelem |
ContentType |
string |
Identifikátor typu obsahu, který odesílatel a příjemce využívá pro logiku specifickou pro aplikaci. |
CorrelationId |
string |
ID korelace. |
DeliveryCount |
Int32 |
Počet dodávek. |
EnqueuedTime |
DateTime |
Čas zařazení do fronty ve standardu UTC |
ScheduledEnqueueTimeUtc |
DateTime |
Naplánovaný čas zařazení do fronty ve standardu UTC |
ExpiresAt |
DateTime |
Čas vypršení platnosti v UTC. |
MessageId |
string |
Uživatelem definovaná hodnota, kterou může Service Bus použít k identifikaci duplicitních zpráv, pokud je tato možnost povolená. |
ReplyTo |
string |
Odpověď na adresu fronty. |
Subject |
string |
Popisek specifický pro aplikaci, který lze použít místo Label vlastnosti metadat. |
To |
string |
Adresa pro odeslání. |