如何在 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);
}