【发布时间】:2020-06-09 18:15:20
【问题描述】:
我正在编写一个 Azure python 函数,该函数被触发,然后生成多个传出消息。我需要将 EventData (body + properties) 消息发送到 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
}
【问题讨论】:
标签: python azure-functions azure-eventhub