2017-02-09 86 views
2

我使用的服務總線與蔚藍的功能。功能由一個隊列觸發,則對輸入的BrokeredMessage的ReplyTo屬性是被用作隊列響應上。我如何動態綁定到輸出隊列?我試着下面的代碼,但得到:如何動態綁定服務總線BrokeredMessage在Azure的功能

無法綁定ServiceBus鍵入 「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" 
    } 
    ] 
} 

回答

3

對於輸出情況下,您需要綁定鍵入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); 
} 
+0

謝謝,正是我需要的。將是很好,如果它看起來像一個典型的場景回覆上的ReplyTo屬性指定的隊列,這可能是被聲明完成。 –

+0

同意。我們在回購[這裏](https://github.com/Azure/azure-webjobs-sdk/issues/1004)擴大了一套建在EventHub觸發數據綁定的屬性有一個相關的問題。我們將爲ServiceBus執行相同的操作。 – mathewc