0

我创建了一个事件中心触发的函数应用程序,该应用程序将从一个事件中心接收并使用将消息/数据发送到另一个事件中心

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 事件中心触发函数应用来实现这种方法?

4

1 回答 1

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

}

如果有错别字,我是用手机输入的,很抱歉;)但总的来说,这是一种方法。

于 2019-08-06T18:52:11.220 回答