如何在 Azure 函数中动态绑定服务总线 BrokeredMessage
How to dynamically bind service bus BrokeredMessage in an Azure Function
我正在使用带有 azure 函数的服务总线。该函数由队列触发,然后将输入 BrokeredMessage 上的 ReplyTo 属性 用作要响应的队列。如何动态绑定到输出队列?我试过下面的代码,但得到:
Can't bind ServiceBus to type
'Microsoft.ServiceBus.Messaging.BrokeredMessage'.
public static async Task Run(BrokeredMessage msg, Binder binder, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message");
var msgout = await binder.BindAsync<BrokeredMessage>(new ServiceBusAttribute(msg.ReplyTo));
}
function.json
{
"disabled": false,
"bindings": [
{
"name": "msg",
"type": "serviceBusTrigger",
"direction": "in",
"queueName": "myInputQueue",
"connection": "AzureWebJobsServiceBus",
"accessRights": "Manage"
}
]
}
对于输出场景,需要绑定类型IAsyncCollector:
public static async Task Run(
BrokeredMessage msg, Binder binder, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message");
var collector = await binder.BindAsync<IAsyncCollector<BrokeredMessage>>(
new ServiceBusAttribute(msg.ReplyTo));
var message = ...
await collector.AddAsync(message);
}
我正在使用带有 azure 函数的服务总线。该函数由队列触发,然后将输入 BrokeredMessage 上的 ReplyTo 属性 用作要响应的队列。如何动态绑定到输出队列?我试过下面的代码,但得到:
Can't bind ServiceBus to type 'Microsoft.ServiceBus.Messaging.BrokeredMessage'.
public static async Task Run(BrokeredMessage msg, Binder binder, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message");
var msgout = await binder.BindAsync<BrokeredMessage>(new ServiceBusAttribute(msg.ReplyTo));
}
function.json
{
"disabled": false,
"bindings": [
{
"name": "msg",
"type": "serviceBusTrigger",
"direction": "in",
"queueName": "myInputQueue",
"connection": "AzureWebJobsServiceBus",
"accessRights": "Manage"
}
]
}
对于输出场景,需要绑定类型IAsyncCollector:
public static async Task Run(
BrokeredMessage msg, Binder binder, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message");
var collector = await binder.BindAsync<IAsyncCollector<BrokeredMessage>>(
new ServiceBusAttribute(msg.ReplyTo));
var message = ...
await collector.AddAsync(message);
}