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

Azure Event Hub Triggered Function App - publish message into multiply event hubs

我创建了一个事件中心触发的函数应用程序,它会从一个事件中心接收并使用

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

但是,现在我想将相同的消息发布到一个或多个附加事件中心(例如,dest-2dest-3 等),以便我所有的消费者事件中心(目标- 1, dest-2, dest-3) 可以使用相同的异步消息。有没有办法通过 Azure 事件中心触发函数应用实现这种方法?

如果您不想创建多个异步收集器,那么您需要将自定义绑定器与 IBinder class 一起使用。如下所示。

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

}

这是我从 phone 中输入的,如果有打字错误,请见谅 ;) 但总的来说,这是一个可行的方法。