Почему сообщение IoT Hub неправильно декодируется в хранилище больших двоичных объектов JSON? - PullRequest
0 голосов
/ 22 мая 2019

Я отправляю строку с помощью набора разработчика Azure Sphere, используя предоставленную функцию:

AzureIoT_SendMessage("Hello from sample App")

Сообщение отправляется в концентратор IoT, а затем направляется в большой двоичный объект хранилища с кодировкой JSON. Если я смотрю на хранилище BLOB-объектов, я получаю следующее:

{"EnqueuedTimeUtc":"2019-05-22T12:33:42.2320000Z","Properties":{},"SystemProperties":{"connectionDeviceId":"fbea*****************6d**********************9c0","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"x509Certificate\",\"issuer\":\"external\",\"acceptingIpFilterRule\":null}","connectionDeviceGenerationId":"63************22","enqueuedTime":"2019-05-22T12:33:42.2320000Z"},"Body":"SGVsbG8gZnJvbSBzYW1wbGUgQXBw"}

Поле «тело» вообще не показывает отправленную строку («Привет из примера приложения»), но показывает «SGVsbG8gZnJvbSBzYW1wbGUgQXBw». Почему это происходит? И как я могу это исправить?

Я обнаружил, что если я отформатирую хранилище как AVRO (вместо JSON), строка будет отображаться правильно, однако сообщение становится (буквально) BLOB-объектом и не может использоваться в потоковой службе, такой как powerBI (например). Тем не менее, сообщение может быть найдено с некоторыми другими беспорядками в BLOB-объекте (см. Рисунок ниже со строковым сообщением по умолчанию)

enter image description here

...