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-2
、dest-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 中输入的,如果有打字错误,请见谅 ;) 但总的来说,这是一个可行的方法。
我创建了一个事件中心触发的函数应用程序,它会从一个事件中心接收并使用
将 message/data 发送到另一个事件中心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
等),以便我所有的消费者事件中心(目标- 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 中输入的,如果有打字错误,请见谅 ;) 但总的来说,这是一个可行的方法。