Структура Azure IoTHub DeviceMessage и запрос маршрута

Я использовал пример Python с https://docs.microsoft.com/de-de/azure/iot-hub/quickstart-send-telemetry-python для отправки данных телеметрии на IoTHub. Теперь я пытаюсь пересылать только сообщения от устройства "test-device" в хранилище BLOB-объектов через пользовательскую конечную точку и маршрут. Со строкой запроса "true" все сообщения со всех устройств отправляются в хранилище. Однако я не получаю запрос на выбор только сообщений из deviceId "test-device". Я ищу в документации, но не нашел полезного примера...

Может кто-нибудь помочь мне с запросом? По крайней мере, было бы также полезно отобрать входящие сообщения внутри IoTHub, чтобы получить представление о структуре сообщений IotHub (как это делается в "примере данных" StreamAnalytics).

2 ответа

Решение

Вы можете попробовать использовать $connectionDeviceId = "{your device id}" в запросе маршрута. connectionDeviceId отмечен на сообщениях, связанных с услугами, IoT Hub. Я думаю, что это проще, чем предложение молчать. Свойства системы сообщений начинаются с символа "$". Больше языка запросов для маршрутизации сообщений здесь.

Здесь есть очень хорошая запись в блоге о маршрутизации сообщений.

Например, вы можете направить любые свойства, которые вы добавляете к своим сообщениям, или любое поле внутри тела сообщения (если это кодировка JSON в кодировке UTF-8). Не уверен, что вы можете по умолчанию указать маршрут для deviceId, но вы можете, например, добавить свойство "testmessage": true на ваши сообщения, а затем есть правило маршрутизации, чтобы соответствовать этому: "testmessage" = true

Другие вопросы по тегам