Azure事件中心触发功能应用程序-将消息发布到多个事件中心

时间:2019-08-06 18:34:32

标签: azure azure-eventhub azure-function-app azure-eventhub-capture

我创建了一个事件中心触发功能应用程序,它将从一个事件中心接收并使用

将消息/数据发送到另一个事件中心
public static async Task Run(
    [EventHubTrigger("source", Connection = "EventHubConnectionAppSetting")] EventData[] events,
    [EventHub("dest-1", Connection = "EventHubConnectionAppSetting")]IAsyncCollector<string> outputEvents,
    ILogger log)

但是,现在我想将同一条消息发布到一个或多个其他事件中心(例如dest-2dest-3等),因此我所有的消费者事件中心(dest-1, dest-2,dest-3)可能消耗相同的消息异步。无论如何,是否可以使用Azure Event Hub触发功能应用程序来实现该方法?

1 个答案:

答案 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);

}

我是从手机上键入的,如果出现拼写错误,抱歉。)但是总的来说,这是一种方法。