javascript - 为事件中心输出绑定设置 partitionKey
问题描述
我有一个 javascript 函数应用程序,它定义了指向事件中心的输出绑定,如此处所述。我一次(批量)发送多条消息以确保最佳性能:
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-by-1 时会起作用吗?
解决方案
根据这个讨论,现在绑定的工作方式似乎是不可能的。虽然讨论是关于 C#,但同样适用于其他语言。
考虑到事件中心 SDK 的变化,至少对于 C#,似乎有一个选项可以直接绑定到EventHubClient
。但这对于其他语言是不可能的。
解决方法是直接使用Azure 事件中心 NodeJS SDK,而不是使用绑定。
推荐阅读
- azure - 使用 Terraform 的 Azure 容器注册表权限
- ios - Swift bool 数据未传递到 tableview 单元格
- django - Django:在 ModelForm 上注入表单验证,而不是 Model
- python - 使用 Pandas 将 CSV 文件连接在一起
- sql - AWS Athena 中的特殊字符显示为问号
- php - 解析错误:语法错误,第 49 行文件意外结束
- angular - 如何将 Angular 组件渲染为控件
- python - 如何从同一行中提取冒号分隔的值?
- javascript - 更改单击元素的图标(React.js)
- c# - 使用数据库数据的 C# 单元测试