Gatilho do Barramento de Serviço do Azure para o Azure Functions
Use o gatilho do Barramento de Serviço para responder a mensagens de uma fila ou tópico do Barramento de Serviço. A partir da versão 3.1.0 da extensão, você pode acionar em uma fila ou tópico habilitado para sessão.
Para obter informações sobre detalhes de instalação e configuração, consulte a visão geral.
As decisões de dimensionamento do Service Bus para os planos Consumo e Premium são tomadas com base no dimensionamento baseado em metas. Para obter mais informações, consulte Dimensionamento baseado em destino.
Importante
Este artigo usa guias para oferecer suporte a várias versões do modelo de programação Node.js. O modelo v4 está geralmente disponível e foi projetado para ter uma experiência mais flexível e intuitiva para desenvolvedores JavaScript e TypeScript. Para obter mais detalhes sobre como o modelo v4 funciona, consulte o Guia do desenvolvedor do Azure Functions Node.js. Para saber mais sobre as diferenças entre v3 e v4, consulte o guia de migração.
O Azure Functions suporta dois modelos de programação para Python. A maneira como você define suas ligações depende do modelo de programação escolhido.
O modelo de programação Python v2 permite definir ligações usando decoradores diretamente em seu código de função Python. Para obter mais informações, consulte o guia do desenvolvedor do Python.
Este artigo suporta ambos os modelos de programação.
Exemplo
Uma função C# pode ser criada usando um dos seguintes modos C#:
- Modelo de trabalho isolado: função C# compilada que é executada em um processo de trabalho isolado do tempo de execução. O processo de trabalho isolado é necessário para suportar funções C# em execução nas versões LTS e não-LTS .NET e .NET Framework. As extensões para funções isoladas do processo de trabalho usam
Microsoft.Azure.Functions.Worker.Extensions.*
namespaces. - Modelo em processo: função C# compilada que é executada no mesmo processo que o tempo de execução do Functions. Em uma variação desse modelo, as funções podem ser executadas usando scripts em C#, que são suportados principalmente para edição de portal em C#. As extensões para funções em processo usam
Microsoft.Azure.WebJobs.Extensions.*
namespaces.
Importante
O suporte para o modelo em processo terminará em 10 de novembro de 2026. É altamente recomendável que você migre seus aplicativos para o modelo de trabalho isolado para obter suporte total.
Este código define e inicializa o ILogger
:
private readonly ILogger<ServiceBusReceivedMessageFunctions> _logger;
public ServiceBusReceivedMessageFunctions(ILogger<ServiceBusReceivedMessageFunctions> logger)
{
_logger = logger;
}
Este exemplo mostra uma função C# que recebe uma única mensagem de fila do Service Bus e a grava nos logs:
[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;
}
Este exemplo mostra uma função C# que recebe várias mensagens da fila do Service Bus em um único lote e grava cada uma nos logs:
[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);
}
}
Este exemplo mostra uma função C# que recebe várias mensagens de fila do Service Bus, grava-a nos logs e liquida a mensagem como concluída:
[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);
}
A função Java a seguir usa a @ServiceBusQueueTrigger
anotação da biblioteca de tempo de execução de funções Java para descrever a configuração para um gatilho de fila do Service Bus. A função pega a mensagem colocada na fila e a adiciona aos logs.
@FunctionName("sbprocessor")
public void serviceBusProcess(
@ServiceBusQueueTrigger(name = "msg",
queueName = "myqueuename",
connection = "myconnvarname") String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
As funções Java também podem ser acionadas quando uma mensagem é adicionada a um tópico do Service Bus. O exemplo a seguir usa a @ServiceBusTopicTrigger
anotação para descrever a configuração do gatilho.
@FunctionName("sbtopicprocessor")
public void run(
@ServiceBusTopicTrigger(
name = "message",
topicName = "mytopicname",
subscriptionName = "mysubscription",
connection = "ServiceBusConnection"
) String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
O exemplo a seguir mostra uma função TypeScript de gatilho do Service Bus. A função lê metadados de mensagem e registra uma mensagem de fila do 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,
});
O exemplo a seguir mostra uma função JavaScript de gatilho do Service Bus. A função lê metadados de mensagem e registra uma mensagem de fila do 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);
},
});
O exemplo a seguir mostra uma associação de gatilho do Service Bus em um arquivo de function.json e uma função do PowerShell que usa a associação.
Aqui estão os dados de ligação no arquivo function.json :
{
"bindings": [
{
"name": "mySbMsg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "mytopic",
"subscriptionName": "mysubscription",
"connection": "AzureServiceBusConnectionString"
}
]
}
Esta é a função que é executada quando uma mensagem do Service Bus é enviada.
param([string] $mySbMsg, $TriggerMetadata)
Write-Host "PowerShell ServiceBus queue trigger function processed message: $mySbMsg"
O exemplo a seguir demonstra como ler uma mensagem de fila do Service Bus por meio de um gatilho. O exemplo depende se você usa o modelo de programação Python v1 ou 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'))
O exemplo a seguir demonstra como ler um tópico de fila do Service Bus por meio de um gatilho.
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)
Atributos
As bibliotecas C# de processo de trabalho em processo e isoladas usam o atributo ServiceBusTriggerAttribute para definir o gatilho de função. Em vez disso, o script C# usa um arquivo de configuração function.json, conforme descrito no guia de script C#.
A tabela a seguir explica as propriedades que você pode definir usando esse atributo trigger:
Property | Description |
---|---|
Nome da fila | Nome da fila a monitorar. Defina somente se estiver monitorando uma fila, não para um tópico. |
Nome do tópico | Nome do tópico a monitorar. Defina somente se estiver monitorando um tópico, não para uma fila. |
Nome da Subscrição | Nome da subscrição a monitorizar. Defina somente se estiver monitorando um tópico, não para uma fila. |
Ligação | O nome de uma configuração de aplicativo ou coleção de configurações que especifica como se conectar ao Service Bus. Consulte Conexões. |
IsBatched | As mensagens são entregues em lotes. Requer uma matriz ou tipo de coleção. |
IsSessionsEnabled | true se estiver se conectando a uma fila ou assinatura com reconhecimento de sessão. false caso contrário, que é o valor padrão. |
AutoCompleteMessages | true se o gatilho deve completar automaticamente a mensagem após uma chamada bem-sucedida. false se não deveria, como quando você está lidando com a liquidação de mensagens no código. Se não for definido explicitamente, o comportamento será baseado autoCompleteMessages na configuração em host.json . |
Quando estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na Values
coleção.
Decoradores
Aplica-se apenas ao modelo de programação Python v2.
Para funções Python v2 definidas usando um decorador, as seguintes propriedades no service_bus_queue_trigger
:
Property | Description |
---|---|
arg_name |
O nome da variável que representa a fila ou a mensagem de tópico no código da função. |
queue_name |
Nome da fila a monitorar. Defina somente se estiver monitorando uma fila, não para um tópico. |
connection |
O nome de uma configuração de aplicativo ou coleção de configurações que especifica como se conectar ao Service Bus. Consulte Conexões. |
Para funções Python definidas usando function.json, consulte a seção Configuração .
Anotações
A ServiceBusQueueTrigger
anotação permite criar uma função que é executada quando uma mensagem de fila do Service Bus é criada. As opções de configuração disponíveis incluem as seguintes propriedades:
Property | Descrição |
---|---|
Designação | O nome da variável que representa a fila ou a mensagem de tópico no código da função. |
queueName | Nome da fila a monitorar. Defina somente se estiver monitorando uma fila, não para um tópico. |
nome_tópico | Nome do tópico a monitorar. Defina somente se estiver monitorando um tópico, não para uma fila. |
nome_do-assinante | Nome da subscrição a monitorizar. Defina somente se estiver monitorando um tópico, não para uma fila. |
conexão | O nome de uma configuração de aplicativo ou coleção de configurações que especifica como se conectar ao Service Bus. Consulte Conexões. |
A ServiceBusTopicTrigger
anotação permite que você designe um tópico e uma assinatura para direcionar quais dados acionam a função.
Quando estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na Values
coleção.
Consulte o exemplo de gatilho para obter mais detalhes.
Configuração
Aplica-se apenas ao modelo de programação Python v1.
A tabela a seguir explica as propriedades que você pode definir no options
objeto passado para os app.serviceBusQueue()
métodos or app.serviceBusTopic()
.
Property | Description |
---|---|
queueName | Nome da fila a monitorar. Defina somente se estiver monitorando uma fila, não para um tópico. |
nome_tópico | Nome do tópico a monitorar. Defina somente se estiver monitorando um tópico, não para uma fila. |
nome_do-assinante | Nome da subscrição a monitorizar. Defina somente se estiver monitorando um tópico, não para uma fila. |
conexão | O nome de uma configuração de aplicativo ou coleção de configurações que especifica como se conectar ao Service Bus. Consulte Conexões. |
Direitos de acesso | Direitos de acesso para a cadeia de conexão. Os valores disponíveis são manage e listen . O padrão é manage , que indica que o connection tem a permissão Gerenciar . Se você usar uma cadeia de conexão que não tenha a permissão Gerenciar , defina accessRights como "ouvir". Caso contrário, o tempo de execução do Functions pode falhar ao tentar fazer operações que exigem direitos de gerenciamento. No Azure Functions versão 2.x e superior, essa propriedade não está disponível porque a versão mais recente do SDK do Service Bus não oferece suporte a operações de gerenciamento. |
isSessionsEnabled | true se estiver se conectando a uma fila ou assinatura com reconhecimento de sessão. false caso contrário, que é o valor padrão. |
Preenchimento automático | Deve ser true para funções não-C#, o que significa que o gatilho deve chamar automaticamente complete após o processamento ou o código da função chama manualmente complete.Quando definido como true , o gatilho conclui a mensagem automaticamente se a execução da função for concluída com êxito e abandona a mensagem caso contrário.Exceções na função resultam nas chamadas abandonAsync de tempo de execução em segundo plano. Se nenhuma exceção ocorrer, então completeAsync é chamado em segundo plano. Esta propriedade está disponível apenas no Azure Functions 2.x e superior. |
Quando estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na Values
coleção.
A tabela a seguir explica as propriedades de configuração de associação definidas no arquivo function.json .
function.json propriedade | Description |
---|---|
type | Deve ser definido como serviceBusTrigger . Essa propriedade é definida automaticamente quando você cria o gatilho no portal do Azure. |
direção | Deve ser definido como "in". Essa propriedade é definida automaticamente quando você cria o gatilho no portal do Azure. |
Designação | O nome da variável que representa a fila ou a mensagem de tópico no código da função. |
queueName | Nome da fila a monitorar. Defina somente se estiver monitorando uma fila, não para um tópico. |
nome_tópico | Nome do tópico a monitorar. Defina somente se estiver monitorando um tópico, não para uma fila. |
nome_do-assinante | Nome da subscrição a monitorizar. Defina somente se estiver monitorando um tópico, não para uma fila. |
conexão | O nome de uma configuração de aplicativo ou coleção de configurações que especifica como se conectar ao Service Bus. Consulte Conexões. |
Direitos de acesso | Direitos de acesso para a cadeia de conexão. Os valores disponíveis são manage e listen . O padrão é manage , que indica que o connection tem a permissão Gerenciar . Se você usar uma cadeia de conexão que não tenha a permissão Gerenciar , defina accessRights como "ouvir". Caso contrário, o tempo de execução do Functions pode falhar ao tentar fazer operações que exigem direitos de gerenciamento. No Azure Functions versão 2.x e superior, essa propriedade não está disponível porque a versão mais recente do SDK do Service Bus não oferece suporte a operações de gerenciamento. |
isSessionsEnabled | true se estiver se conectando a uma fila ou assinatura com reconhecimento de sessão. false caso contrário, que é o valor padrão. |
Preenchimento automático | Deve ser true para funções não-C#, o que significa que o gatilho deve chamar automaticamente complete após o processamento ou o código da função chama manualmente complete.Quando definido como true , o gatilho conclui a mensagem automaticamente se a execução da função for concluída com êxito e abandona a mensagem caso contrário.Exceções na função resultam nas chamadas abandonAsync de tempo de execução em segundo plano. Se nenhuma exceção ocorrer, então completeAsync é chamado em segundo plano. Esta propriedade está disponível apenas no Azure Functions 2.x e superior. |
Quando estiver desenvolvendo localmente, adicione as configurações do aplicativo no arquivo local.settings.json na Values
coleção.
Consulte a seção Exemplo para obter exemplos completos.
Utilização
Os seguintes tipos de parâmetros são suportados por todas as modalidades C# e versões de extensão:
Tipo | Description |
---|---|
System.String | Use quando a mensagem for texto simples. |
byte[] | Use para mensagens de dados binários. |
Objeto | Quando uma mensagem contém JSON, o Functions tenta desserializar os dados JSON em um tipo de objeto CLR antigo conhecido. |
Os tipos de parâmetros específicos de mensagens contêm metadados de mensagem adicionais. Os tipos específicos suportados pelo gatilho do Service Bus dependem da versão de tempo de execução do Functions, da versão do pacote de extensão e da modalidade C# usada.
Quando você deseja que a função processe uma única mensagem, o gatilho do Service Bus pode se vincular aos seguintes tipos:
Tipo | Description |
---|---|
string |
A mensagem como uma cadeia de caracteres. Use quando a mensagem for texto simples. |
byte[] |
Os bytes da mensagem. |
Tipos serializáveis JSON | Quando um evento contém dados JSON, o Functions tenta desserializar os dados JSON em um tipo de objeto CLR (POCO) simples. |
ServiceBusReceivedMessage1 | O objeto message. Ao vincular ao ServiceBusReceivedMessage , você também pode, opcionalmente, incluir um parâmetro do tipo ServiceBusMessageActions1,2 para executar ações de liquidação de mensagens. |
Quando você deseja que a função processe um lote de mensagens, o gatilho do Service Bus pode se vincular aos seguintes tipos:
Tipo | Description |
---|---|
T[] onde T é um dos tipos de mensagem única |
Uma matriz de eventos do lote. Cada entrada representa um evento. Ao vincular ao ServiceBusReceivedMessage[] , você também pode, opcionalmente, incluir um parâmetro do tipo ServiceBusMessageActions1,2 para executar ações de liquidação de mensagens. |
1 Para usar esses tipos, você precisa fazer referência a Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.14.1 ou posterior e às dependências comuns para associações de tipo SDK.
2 Ao usar ServiceBusMessageActions
, defina a AutoCompleteMessages
propriedade do atributo trigger como false
. Isso impede que o tempo de execução tente concluir mensagens após uma chamada de função bem-sucedida.
Quando a Connection
propriedade não está definida, Functions procura uma configuração de aplicativo chamada AzureWebJobsServiceBus
, que é o nome padrão para a cadeia de conexão do Service Bus. Você também pode definir a Connection
propriedade para especificar o nome de uma configuração de aplicativo que contém a cadeia de conexão do Service Bus a ser usada.
A mensagem recebida do Service Bus está disponível por meio de um ServiceBusQueueMessage
ou ServiceBusTopicMessage
parâmetro.
A instância do Service Bus está disponível por meio do parâmetro configurado na propriedade name do arquivo function.json .
A mensagem de fila está disponível para a função através de um parâmetro digitado como func.ServiceBusMessage
. A mensagem do Service Bus é passada para a função como uma cadeia de caracteres ou objeto JSON.
Para obter um exemplo completo, consulte a seção de exemplos.
Ligações
A connection
propriedade é uma referência à configuração do ambiente que especifica como o aplicativo deve se conectar ao Service Bus. Pode especificar:
- O nome de uma configuração de aplicativo que contém uma cadeia de conexão
- O nome de um prefixo compartilhado para várias configurações de aplicativo, definindo em conjunto uma conexão baseada em identidade.
Se o valor configurado for uma correspondência exata para uma única configuração e uma correspondência de prefixo para outras configurações, a correspondência exata será usada.
Connection string
Para obter uma cadeia de conexão, siga as etapas mostradas em Obter as credenciais de gerenciamento. A cadeia de conexão deve ser para um namespace do Service Bus, não limitado a uma fila ou tópico específico.
Essa cadeia de conexão deve ser armazenada em uma configuração de aplicativo com um nome correspondente ao valor especificado pela connection
propriedade da configuração de ligação.
Se o nome da configuração do aplicativo começar com "AzureWebJobs", você poderá especificar apenas o restante do nome. Por exemplo, se você definir connection
como "MyServiceBus", o tempo de execução do Functions procurará uma configuração de aplicativo chamada "AzureWebJobsMyServiceBus". Se você deixar connection
vazio, o tempo de execução do Functions usará a cadeia de conexão padrão do Service Bus na configuração do aplicativo chamada "AzureWebJobsServiceBus".
Conexões baseadas em identidade
Se você estiver usando a versão 5.x ou superior da extensão, em vez de usar uma cadeia de conexão com um segredo, você pode fazer com que o aplicativo use uma identidade do Microsoft Entra. Para fazer isso, você definiria as configurações sob um prefixo comum que mapeia para a connection
propriedade na configuração de gatilho e vinculação.
Neste modo, a extensão requer as seguintes propriedades:
Property | Modelo de variável de ambiente | Description | Valor de exemplo |
---|---|---|---|
Namespace totalmente qualificado | <CONNECTION_NAME_PREFIX>__fullyQualifiedNamespace |
O namespace do Service Bus totalmente qualificado. | <service_bus_namespace.servicebus.windows.net> |
Propriedades adicionais podem ser definidas para personalizar a conexão. Consulte Propriedades comuns para conexões baseadas em identidade.
Nota
Ao usar a Configuração do Aplicativo do Azure ou o Cofre da Chave para fornecer configurações para conexões de Identidade Gerenciada, os nomes de configuração devem usar um separador de chave válido, como :
ou /
no lugar do para garantir que os __
nomes sejam resolvidos corretamente.
Por exemplo, <CONNECTION_NAME_PREFIX>:fullyQualifiedNamespace
.
Quando hospedadas no serviço Azure Functions, as conexões baseadas em identidade usam uma identidade gerenciada. A identidade atribuída ao sistema é usada por padrão, embora uma identidade atribuída ao usuário possa ser especificada com as credential
propriedades e clientID
. Observe que não há suporte para a configuração de uma identidade atribuída pelo usuário com uma ID de recurso. Quando executado em outros contextos, como desenvolvimento local, sua identidade de desenvolvedor é usada, embora isso possa ser personalizado. Consulte Desenvolvimento local com conexões baseadas em identidade.
Conceder permissão à identidade
Qualquer identidade que esteja sendo usada deve ter permissões para executar as ações pretendidas. Para a maioria dos serviços do Azure, isso significa que você precisa atribuir uma função no RBAC do Azure, usando funções internas ou personalizadas que fornecem essas permissões.
Importante
Algumas permissões podem ser expostas pelo serviço de destino que não são necessárias para todos os contextos. Sempre que possível, aderir ao princípio do menor privilégio, concedendo à identidade apenas os privilégios necessários. Por exemplo, se o aplicativo só precisa ser capaz de ler de uma fonte de dados, use uma função que só tenha permissão para ler. Seria inadequado atribuir uma função que também permita escrever a esse serviço, pois isso seria uma permissão excessiva para uma operação de leitura. Da mesma forma, convém garantir que a atribuição de função tenha escopo apenas sobre os recursos que precisam ser lidos.
Você precisará criar uma atribuição de função que forneça acesso aos seus tópicos e filas em tempo de execução. Funções de gerenciamento como Proprietário não são suficientes. A tabela a seguir mostra as funções internas recomendadas ao usar a extensão do Service Bus em operação normal. Seu aplicativo pode exigir permissões adicionais com base no código que você escreve.
Tipo de vinculação | Exemplo de funções internas |
---|---|
Gatilho1 | Recetor de Dados do Barramento de Serviço do Azure, Proprietário de Dados do Barramento de Serviço do Azure |
Vinculação de saída | Remetente de dados do Barramento de Serviço do Azure |
1 Para acionar a partir de tópicos do Service Bus, a atribuição de função precisa ter escopo efetivo sobre o recurso de assinatura do Service Bus. Se apenas estiver incluído o tópico, ocorrerá um erro. Alguns clientes, como o portal do Azure, não expõem o recurso de subscrição do Service Bus como um âmbito para atribuição de função. Nesses casos, a CLI do Azure pode ser usada. Para saber mais, consulte Funções internas do Azure para o Barramento de Serviço do Azure.
Mensagens venenosas
O tratamento de mensagens suspeitas não pode ser controlado ou configurado no Azure Functions. O Service Bus lida com mensagens suspeitas em si.
Comportamento PeekLock
O tempo de execução do Functions recebe uma mensagem no modo PeekLock.
Por padrão, o tempo de execução chama Complete
a mensagem se a função for concluída com êxito ou chama Abandon
se a função falhar. Você pode desativar o preenchimento automático através da autoCompleteMessages
propriedade em host.json
.
Por padrão, o tempo de execução chama Complete
a mensagem se a função for concluída com êxito ou chama Abandon
se a função falhar. Você pode desabilitar a conclusão automática através da propriedade in host.json
ou através de autoCompleteMessages
uma propriedade no atributo trigger. Você deve desativar o preenchimento automático se o código da função lidar com a liquidação de mensagens.
Se a função for executada por mais tempo do que o PeekLock
tempo limite, o bloqueio será renovado automaticamente enquanto a função estiver em execução. O maxAutoRenewDuration
é configurável no host.json, que mapeia para ServiceBusProcessor.MaxAutoLockRenewalDuration. O valor padrão dessa configuração é 5 minutos.
Metadados da mensagem
Os tipos específicos de mensagens permitem recuperar facilmente metadados como propriedades do objeto. Essas propriedades dependem da versão de tempo de execução do Functions, da versão do pacote de extensão e da modalidade C# usada.
Essas propriedades são membros da classe ServiceBusReceivedMessage .
Propriedade | Type | Description |
---|---|---|
ApplicationProperties |
ApplicationProperties |
Propriedades definidas pelo remetente. |
ContentType |
string |
Um identificador de tipo de conteúdo utilizado pelo emissor e recetor para lógica específica do aplicativo. |
CorrelationId |
string |
O ID de correlação. |
DeliveryCount |
Int32 |
O número de entregas. |
EnqueuedTime |
DateTime |
A hora enfileirada em UTC. |
ScheduledEnqueueTimeUtc |
DateTime |
A hora enfileirada agendada em UTC. |
ExpiresAt |
DateTime |
O tempo de expiração em UTC. |
MessageId |
string |
Um valor definido pelo usuário que o Service Bus pode usar para identificar mensagens duplicadas, se habilitado. |
ReplyTo |
string |
A resposta ao endereço da fila. |
Subject |
string |
O rótulo específico do aplicativo que pode ser usado no lugar da Label propriedade de metadados. |
To |
string |
O endereço de envio para. |