Как получать сообщения из IoT Edge Hub без использования IoT Hub

Я хочу написать приложение C #, которое получает сообщения из IoT Edge Hub на устройстве IoT Edge, прежде чем они будут отправлены в IoT Hub.

Я хочу написать сквозной тест для своих периферийных модулей IoT. Для этого я собираюсь запустить всю среду выполнения IoT edge, а также сервер MQTT в контейнере Docker. Затем я хочу написать тест, который отправляет данные на сервер MQTT извне контейнера и извлекает их обратно, подключаясь напрямую к пограничному концентратору IoT.

Моя первоначальная архитектура выглядит так:

введите здесь описание изображения

Но я хочу иметь что-то вроде этого:

введите здесь описание изображения

Мне по-прежнему нужен IoT-концентратор для создания устройств на периферии, но я хочу напрямую прослушивать пограничный концентратор, чтобы получать сообщения из моего конвейера.

Я мог бы написать «тестовый модуль», который будет выполнять мои тесты в контейнере, но на самом деле это не то, что я хочу делать.

Итак, мои вопросы:

  1. Действительно ли это возможно?
  2. Где я могу получить информацию о том, как напрямую подключиться к IoT Edge Hub?

person Tobias von Falkenhayn    schedule 30.04.2019    source источник
comment
Пара вопросов: 1) Почему ваш C # Test создает устройство в IoT Hub? 2) Зачем нужен MQTT-сервер в модуле? Разве ваш тест C # не может отправлять сообщения непосредственно в Edge-концентратор (как листовое устройство IoT)? 3) Что вы на самом деле хотите протестировать? :)   -  person silent    schedule 30.04.2019
comment
1) Потому что я хочу создать динамическое устройство в своем тесте, например. настроить устройство, протестировать его, удалить 2) Сервер MWTT не находится в модуле, он находится в том же контейнере докеров, что и среда выполнения IoT Edge 3) Я просто хочу протестировать всю сторону Edge IoT (весь конвейер модуля) в стиле e2e   -  person Tobias von Falkenhayn    schedule 30.04.2019
comment
хорошо, значит, ваше тестовое устройство действительно подключается к конечной точке MQTT Edge Hub ?! Ваша фотография немного вводит в заблуждение в этом отношении. Полагаю, ваш модуль Edge выполняет какую-то агрегацию?   -  person silent    schedule 30.04.2019
comment
да, мой тестовый код отправляет данные на сервер mqtt, который фактически отправляет их в пограничную среду выполнения. затем цепочка модулей преобразует данные. Затем я хочу вернуть данные, но не переходить через iot-концентратор.   -  person Tobias von Falkenhayn    schedule 30.04.2019
comment
Хорошо понял. Мой ответ ниже   -  person silent    schedule 30.04.2019


Ответы (1)


У пограничного концентратора нет конечной точки для приема сообщений извне, как у Центра Интернета вещей. Таким образом, ваше единственное решение здесь - иметь еще один настраиваемый модуль, в который вы маршрутизируете свои сообщения. Затем этот модуль может предоставить конечную точку, где он будет предоставлять входящие сообщения внешней системе.

person silent    schedule 30.04.2019
comment
просто любопытно, но есть ли официальная страница, на которой говорится, что у нее нет конечной точки? Я ничего не мог найти об этом. В любом случае, спасибо :) - person Tobias von Falkenhayn; 01.05.2019
comment
Я не видел ничего, что говорило бы о том, что это возможно;) но не стесняйтесь заглянуть в исходный код и посмотреть, может быть, есть скрытый «черный ход» :) - person silent; 01.05.2019
comment
Извините за угон исходного вопроса, но можно ли использовать устройство Azure IoT Edge в качестве универсального шлюза для передачи данных в разные облака, такие как AWS, Google и т. Д.? - person abdus_salam; 26.08.2020