You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function v4编程模型中Event Hub输出绑定如何设置Key/Headers

Azure Functions v4 Event Hub输出绑定:设置消息内容、分区键和自定义属性

在v3编程模型中,你可以通过构造包含Value、Headers等字段的对象来设置Event Hub消息的内容和属性,但这种方式在v4模型中不再生效——v4会直接将整个对象作为消息体发送,不会解析这些特殊字段。以下是v4模型中正确的实现方式:

正确的消息构造方式

在v4的JavaScript/TypeScript函数中,需要使用EventHubMessage类(或直接构造指定结构的对象)来定义消息内容、分区键和自定义属性:

代码示例

const { app, EventHubMessage } = require('@azure/functions');

app.eventHub('eventHubOutput', {
  connection: 'EventHubConnectionString', // 替换为你的连接字符串配置名
  eventHubName: 'kafkaeventhubtest1', // 替换为你的Event Hub名称
  handler: async (context) => {
    // 使用EventHubMessage类构造消息
    const message1 = new EventHubMessage('one', {
      partitionKey: 'your-partition-key', // 对应v3中的Key
      properties: { test: 'javascript' } // 对应v3中的Headers(键值对形式)
    });

    // 或者直接构造符合规范的消息对象(无需依赖EventHubMessage)
    const message2 = {
      body: 'two', // 对应v3中的Value,作为消息主体内容
      partitionKey: 'your-partition-key',
      properties: { test: 'javascript' }
    };

    // 批量发送消息
    context.extraOutputs.set('eventHubOutput', [message1, message2]);
  }
});

字段对应关系

  • body(或EventHubMessage的第一个参数):对应v3中的Value,是消息的实际内容
  • partitionKey:对应v3中的Key,用于指定消息的分区键
  • properties:对应v3中的Headers,以键值对形式传递自定义消息属性

注意事项

  • 确保你安装的@azure/functions包版本是v4及以上
  • 如果使用TypeScript,可直接导入EventHubMessage类型获得类型提示

内容的提问来源于stack exchange,提问作者Sebastian Kramer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:35:31