我有一个javascript函数应用程序,该应用程序定义了指向事件中心的输出绑定,如here所述。我要一次(批量)发送多条消息,以确保最佳性能:
var message1 = //create javascript object here
var message2 = //create javascript object here
(...)
context.bindings.outputEventHubMessage = [];
context.bindings.outputEventHubMessage.push(message1);
context.bindings.outputEventHubMessage.push(message2);
(...)
context.done();
可以,但是我想在消息级别上设置分区键,以确保具有相同分区键的消息最终位于同一EH分区中。我尝试了以下内容:
message1.partitionKey = "ABC";
message2.partitionKey = "ABC";
...但是它不起作用-对于大量消息,我注意到具有相同分区键的消息具有不同的分区ID。
批量发送时可以这样做吗?如果没有,那么在发送1比1时可以使用吗?
基于this discussion,看来今天的绑定方式无法实现。尽管讨论是关于C#的,但同样适用于其他语言。
考虑到Event Hubs SDK的更改,至少对于C#,似乎直接绑定到an option会出现EventHubClient
。但这对于其他语言是不可能的。
解决方法是直接使用Azure Event Hubs NodeJS SDK而不是使用绑定。