Как отправить сообщение в концентратор Azure IOT и отобразить его в клиентском приложении с помощью функции Azure на портале - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю с такими ресурсами Azure, как служебная шина Azure, функции Azure, IOT Hub.Здесь я пытаюсь отправить сообщения очереди из служебной шины Azure в концентратор IOT с помощью функций Azure, а затем отобразить эти сообщения на моем локальном устройстве (Cloud-To-Device).Я могу прочитать мои сообщения в функции Azure, используя триггер очереди служебной шины, и попытался отправить их в концентратор IOT в качестве вывода функции.Однажды, когда я запускаю функцию Azure «Можно отправлять сообщения в IOT Hub в качестве вывода», но он не может отправить их на клиентское устройство.Можете ли вы предложить мне «Как решить эту ситуацию»

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

К сожалению, в настоящее время нет выходной привязки для IoT-концентратора из функций (однако вы можете написать новую пользовательскую привязку;))

Чтобы общаться с функцией на ваших устройствах, вам нужен SDK Azure Device Service.IoT Hub.Затем вы можете использовать либо сообщения Cloud-to-Device (асинхронные), либо прямые методы (синхронные).Вы можете найти пример последнего в моем репозитории GitHub здесь: https://github.com/sebader/iotedge-end2end/blob/master/CloudFunctions/DirectMethodCaller.cs

Важные составляющие:

ServiceClient _iothubServiceClient = ServiceClient.CreateFromConnectionString(config["iothubowner_cs"]);
var methodRequest = new CloudToDeviceMethod("YourDirectMethodName", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10));
var result = await _iothubServiceClient.InvokeDeviceMethodAsync(device, module, methodRequest).ConfigureAwait(false);

Реализация сообщений C2D будет выглядеть примерно так же.

0 голосов
/ 15 февраля 2019

Насколько я знаю, в настоящее время нет способа выбрать сообщение Cloud to Device (C2D) в качестве вывода функций Azure.Вы также не можете использовать выход концентратора событий, так как он не поддерживает сообщения C2D, как описано здесь .

Я могу подумать о двух способах передачи сообщений C2D в функциях Azure:

  1. Используйте Azure IoT SDK, как описано в в этом ответе и показано в этом канале 9 видео 2017 года (может быть устаревшим).
  2. ИспользуйтеAPI-интерфейс Azure IoT Hub.Вы можете найти общие параметры конфигурации здесь и конечная точка API для использования будет senddevicecommand .
...