Как отправить детали свойств в сообщении EventHub с помощью Python? - PullRequest
0 голосов
/ 22 февраля 2019

Я имею в виду эту статью "https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-python-get-started-send", относящуюся к отправке сообщений в EventHub с использованием Python.

Сообщение имеет следующие компоненты: смещение, тело, системные свойства, свойства. смещение генерируется автоматически, но мы можем предоставить другое.

Для моего проекта - кроме тела сообщения, мне также нужно отправить "Properties", который не является частью Body. Как это сделать? Я проверилкласс EventData(object): и выглядит так, что для этого можно использовать application_properties, но я не уверен, как это реализовать.

Является ли application_properties правильной аналогией для получения "свойств" в сообщении?

Не могли бы вы добавить больше подробностей в статью с примером, показывающим, как использовать класс EventData для Python для отправки подробной информации помимо тела сообщения, такого как Properties и SystemProperties. На данный момент Properties отправляется в виде пустого списка.

Пример формата сообщения, которое мне нужно отправить в EventHub с использованием Python:

Sender.send(EventData('{"**offset**":"2415248","**body**":"TESTone:100, 
Temperature:553.0","**systemProperties**":[{"key":{"string":"x-opt- 
sequence-number"},"value":{"string":"23512"}},{"key":{"string":"x-opt- 
offset"},"value":{"string":"2415248"}},{"key":{"string":"x-opt- 
enqueued-time"},"value":{"string":"Fri Feb 22 02:14:23 UTC 
2019"}}],"**properties**":[]}'))

И я хочуотправьте этот dict значения в свойства : {"key":{"string":"Type"},"value":{"string":"iPhone"}}

1 Ответ

0 голосов
/ 25 февраля 2019

Нашли решение этой проблемы, да, мы можем использовать «application_properties» для отправки «свойств» сообщения.Это мой пример кода, который работал:

from azure.eventhub import EventHubClient, Receiver, Offset, Sender, EventData
from uamqp import Message

ADDRESS = "amqps://<>.windows.net/<>"
USER = "RootManageSharedAccessKey"
KEY = "<>"

client = EventHubClient(ADDRESS, debug=True, username=USER, password=KEY)
Sender = client.add_sender(partition="0")
client.run()

event = EventData(body="TESTTWO:100, Temperature:-127.0")
event.application_properties = {"Type": "iPhone"}
Sender.send(event)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...