Функция 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