Azure Node函数通过Event Hub输出绑定动态路由ADX表遇阻
问题解决:Azure Node.js函数Event Hub输出绑定实现ADX动态表路由
问题根源
Azure Functions的Event Hub输出绑定在Node.js环境中,对消息属性的字段命名要求与EventHubProducerClient SDK不同:
- SDK中自定义属性放在
properties字段 - 函数输出绑定要求属性放在
applicationProperties字段
直接复用SDK的消息结构时,properties字段不会被输出绑定识别,导致ADX无法获取到动态路由所需的Table、Format等属性,只能使用数据连接中配置的固定表。
正确代码示例
在Node.js函数中,返回符合输出绑定要求的消息结构:
module.exports = async function (context, req) { // 构造带动态路由属性的消息 const eventMessage = { body: { some: "fieldValue" }, applicationProperties: { Table: 'table_name', Format: 'JSON', IngestionMappingReference: 'table_name_mapping' } }; // 绑定到Event Hub输出(假设输出绑定名称为eventHubOutput) context.bindings.eventHubOutput = eventMessage; context.done(); };
额外验证步骤
- 确认ADX与Event Hub的数据连接未设置固定目标表,需启用动态路由模式
- 确保
IngestionMappingReference指定的映射规则已在目标ADX表中创建 - 可通过Event Hub门户的消息预览功能,验证消息的
Application Properties是否包含正确的路由字段
内容的提问来源于stack exchange,提问作者Franky Begue
相关产品推荐
相关产品推荐

