簡體   English   中英

Azure 功能 Python | 將帶有屬性的 EventData 消息發送到事件中心 output

[英]Azure Functions Python | Send EventData messages with properties to Event Hub output

我正在寫一個 Azure python function 被觸發然后生成多個傳出消息。 我需要將 EventData (body + properties) 消息發送到 Eventhub。 到目前為止,我還沒有找到使用 EventHub output 綁定向傳出消息添加屬性的任何方法。 似乎 output 字符串已放入“body”屬性中。

我看到的一種可能的解決方案是將 EventHubClient 寫入 function,但這真的是讓屬性隨消息一起發送的最有效方法嗎? 那么為什么會有 output 綁定呢?

我的 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 output 綁定向傳出消息添加屬性。

解決方法是在 function 中使用 EventHub SDK。

參考:

Microsoft Azure SDK 用於事件中心 (Python)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM