我创建了一个事件中心触发功能应用程序,它将从一个事件中心接收并使用
将消息/数据发送到另一个事件中心public static async Task Run(
[EventHubTrigger("source", Connection = "EventHubConnectionAppSetting")] EventData[] events,
[EventHub("dest-1", Connection = "EventHubConnectionAppSetting")]IAsyncCollector<string> outputEvents,
ILogger log)
但是,现在我想将同一条消息发布到一个或多个其他事件中心(例如dest-2
,dest-3
等),因此我所有的消费者事件中心(dest-1, dest-2,dest-3)可能消耗相同的消息异步。无论如何,是否可以使用Azure Event Hub触发功能应用程序来实现该方法?
答案 0 :(得分:1)
如果您不想创建多个异步收集器,则需要对IBinder类使用自定义活页夹。如下所示。
public static async Task Run(
[EventHubTrigger("source", Connection = "EventHubConnectionAppSetting")] EventData[] events,
IBinder binder,
ILogger log) {
// custom binding here (exmaple)
var collector = await binder.BindAsync<IAsyncCollector<string>>(
new EventHubAttribute(... params to event hub here...));
var message = ...
await collector.AddAsync(message);
}
我是从手机上键入的,如果出现拼写错误,抱歉。)但是总的来说,这是一种方法。