Можно ли отправить сообщение MQTT в Event Hub?Или есть другой способ? - PullRequest
2 голосов
/ 17 мая 2019

Я новичок в Azure, MQTT и IoT. Мне было дано задание создать POC о том, как отправить сообщение MQTT в концентратор событий Azure.

А из обработки Event Hub сохраните сообщение на облачном сервере sql.

Возможно ли это? Поскольку я прочитал с здесь , этот концентратор событий Azure не поддерживает MQTT. Или есть обходной путь для этого? Или есть лучший способ сделать это?

В настоящее время я пытаюсь исследовать Azure Event Hub и Azure IoT.

Пожалуйста, помогите мне. Спасибо.

Ответы [ 4 ]

2 голосов
/ 17 мая 2019

Azure Event Hub не поддерживает MQTT, только Azure IoT Hub.Подробные сведения см. Здесь, а также о том, как отправлять сообщения MQTT с использованием или без использования Microsoft SDKS: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support

После отправки сообщений в IoT Hub их можно использовать в Event Hub.совместимая конечная точка IoT Hub.Или, если вам нужны данные в «реальном» концентраторе событий, вы можете использовать маршрутизацию для пересылки сообщений из концентратора IoT в концентратор событий.

0 голосов
/ 20 мая 2019

Функция Azure EventHub Trigger - это быстрое решение вашего вопроса.Первоначально IoT Hub и Event Hub были в большей степени ориентированы на клиента и от машины к машине соответственно.Как только вы захотите подключить тысячи устройств в масштабе, вы должны использовать IoTHub и обеспечить загрузку обработки событий на внутренний уровень Event-Hub. Вот функции IoTHub и EventHub

Таким образом, самый простой способ передачи сообщений mqtt с устройства на EventHub - использовать IoTHub и использовать функцию Azure, включающую триггер Event-Hub для полученияEventData.Наконец, введите эти EventData в Azure SQL Server.

Вы можете получить доступ к IoTHub MQTT напрямую, используя sdk или Azure iothub API, в противном случае используйте MQTT Broker в качестве моста к IoTHub.

В качестве первого шага попробуйтеиспользовать команду curl для прямого доступа к API Azure IoTHub.

Пример публикации

mosquitto_pub -d -q 1 --capath /etc/ssl/certs/ -V mqttv311 -p 8883 \
  -h iothub007.azure-devices.net \
  -i device0001 \
  -u "iothub007.azure-devices.net/device0001/api-version=2016-11-14" \
  -P "SharedAccessSignature sr=xxxx&skn=xxxx&sig=xxxx&se=xxxx" \
  -t "devices/device0001/messages/events/"
  -m '{"message":"howdy"}'

Пример подписки

mosquitto_sub -d -q 1 --capath /etc/ssl/certs/ -V mqttv311 -p 8883 \
  -h iothub0007.azure-devices.net \
  -i device0001 \
  -u "iothub0007.azure-devices.net/device0001/api-version=2016-11-14" \
  -P "SharedAccessSignature sr=xxxx&skn=xxxx&sig=xxxx&se=xxxx" \
  -t "devices/device0001/messages/devicebound/#"

На втором этапе

Вы можетепопробуйте использовать Azure IoT SDK, чтобы сделать то же самое, что и выше.

Если второй шаг кажется трудным, попробуйте использовать посредник MQTT в качестве моста к концентратору IoT Azure (*).Я бы рекомендовал использовать VerneMQ или Mosquitto.

В настоящее время MS Azure IoT SDK поддерживает все MQTT, AMQP, HTTP из SDK.

Ссылочные коды: github

0 голосов
/ 17 мая 2019

Я делаю что-то подобное в своем проекте, и я нашел способ сделать это.

Как уже упоминалось в других ответах, что вы можете отправить сообщение MQTT в IoT Hub, а затем в EventHub, процесс будет таким: используйте Azure IoT SDK для разработки приложения для устройства IoT и отправляйте свои сообщения с использованием протокола MQTT в IoT Hub. Вы можете использовать Службу инициализации устройства здесь, если вы хотите автоматически подключить ваше устройство IoT к концентратору IoT, в этом случае вам нужно будет указать информацию о соединении DPS в коде приложения, чтобы устройство связывалось с DPS и получало информацию о подключении концентратора IoT. , Вы можете найти документацию для этого https://docs.microsoft.com/en-us/azure/iot-dps/about-iot-dps

Если хотите, вы можете создать включенный Kafka экземпляр концентратора событий, а затем создать в нем концентратор тем / событий. Теперь вы можете перенаправить все ваши сообщения IoT Hub на эту тему. Преимущество заключается в том, что теперь вы можете создать приложение, такое как панель мониторинга, которая отображает сгенерированные данные устройства IoT, а источником данных для этого будет служба Event Hub с поддержкой Kafka. Вы можете увидеть один пример в документации https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-quickstart-kafka-enabled-event-hubs

0 голосов
/ 17 мая 2019

Вы можете отправлять свои сообщения MQTT на IotHub. IotHub имеет конечную точку по умолчанию, совместимую с EventHubs. Затем вы можете создать AzureFunction с EventHubTrigger для обработки сообщений. С помощью этой функции вы можете извлечь данные из ваших сообщений и сохранить их в базе данных SQL.

В качестве альтернативы вы можете использовать StreamAnalytics для сохранения сообщений, полученных IotHub, в вашу базу данных. Однако StreamAnalytics обходится дороже, чем использование функции Azure.

...