javascript - 为事件中心输出绑定(bind)设置partitionKey

标签 javascript azure-functions azure-eventhub azure-function-app

我有一个 javascript 函数应用程序,它定义了指向事件中心的输出绑定(bind),如所述 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 ,看起来按照目前的绑定(bind)工作方式是不可能的。尽管讨论的是 C#,但同样也适用于其他语言。

考虑到事件中心 SDK 中的更改,至少对于 C#,似乎可以通过直接绑定(bind)到 EventHubClient 来实现 an option。但这对于其他语言来说是不可能的。

解决方法是直接使用 Azure Event Hubs NodeJS SDK 而不是使用绑定(bind)。

关于javascript - 为事件中心输出绑定(bind)设置partitionKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60642682/

相关文章:

c# - 在 Visual Studio 中调试 Azure 函数

javascript - 循环遍历无序列表以添加和删除类

javascript - React Helmet 可以将 javascript 对象注入(inject) <HEAD> 标签吗?

node.js - Azure Function Javascript (NodeJS) CosmosDB 查询

Azure Functions - 如何返回位置 header

azure-storage-blobs - Azure IoT中心-保存遥测最佳实践

azure - Azure 中每个区域中 EventGrid 、事件中心的可用区计数

具有 Net Core Web API 的 Azure 事件中心

javascript - 检测是否在对象上调用了方法(javascript)

javascript - 我无法在 Meteor 应用程序中使用聊天功能