Azure函数Python |将带有属性的EventData消息发送到事件中心输出

Azure函数Python |将带有属性的EventData消息发送到事件中心输出,python,azure-functions,azure-eventhub,Python,Azure Functions,Azure Eventhub,我正在编写一个Azure python函数,该函数被触发,然后生成多条传出消息。我需要将EventData(正文+属性)消息发送到Eventhub。到目前为止,我还没有找到任何方法使用EventHub输出绑定向传出消息添加属性。输出字符串似乎被放入“body”属性中 我看到的一种可能的解决方案是在函数中写入EventHubClient,但这真的是让属性随消息一起发送的最有效方法吗?那么为什么会有输出绑定呢 我的function.json文件是: { "type": "even

我正在编写一个Azure python函数,该函数被触发,然后生成多条传出消息。我需要将EventData(正文+属性)消息发送到Eventhub。到目前为止,我还没有找到任何方法使用EventHub输出绑定向传出消息添加属性。输出字符串似乎被放入“body”属性中

我看到的一种可能的解决方案是在函数中写入EventHubClient,但这真的是让属性随消息一起发送的最有效方法吗?那么为什么会有输出绑定呢

我的function.json文件是:

    {
      "type": "eventHub",
      "name": "outputHub",
      "eventHubName": "test",
      "connection": "TestSendConnection",
      "direction": "out"
}
这是我的密码:

def main(events: func.EventHubEvent,
         referenceInput: func.InputStream,
         outputHub: func.Out[str]):
    logging.info('Send an output event to eventhub')

    evt_data_list = []
    for k in range(0,10):
        evt_data = EventData("Sample Body")
        evt_data.properties['EventType'] = "log"
        evt_data_list.append(evt_data)

    logging.info('Send an output event to eventhub')
    import random
    outputHub.set("[" + ",".join([str(evt) for evt in evt_data_list]) + "]")

我正在使用Azure事件中心资源管理器监视传入的消息,我收到多条消息,但它们以以下格式到达。对于外部解析器,我需要将主体部分和属性部分分开

{
  "body": {
    "body": "Sample Body",
    "properties": {
      "EventType": "log"
    }
  },
  "enqueuedTimeUtc": "2020-06-09T17:59:04.803Z",
  "offset": "1335734859528",
  "sequenceNumber": 4995022
}

目前,恐怕无法使用EventHub输出绑定向传出消息添加属性

解决方法是在函数内部使用EventHub SDK

参考:


目前,恐怕无法使用EventHub输出绑定向传出消息添加属性

解决方法是在函数内部使用EventHub SDK

参考:


谢谢你的回答。我在Azure函数中没有使用输出绑定,而是使用中的代码示例发送带有属性字段的传出消息。谢谢您的回答。我最终在Azure函数中没有使用输出绑定,并使用中的代码示例发送带有属性字段的传出消息。