Как реализовать функциональность маршрутов для Twin Change в Azure Iot-hub?

Я установил маршруты для двойника обновления и выбрал конечную точку в качестве событий (по умолчанию), поддерживаемых концентратором Интернета вещей, но он не работает.

Вот на скриншоте

скриншот

Я что-то делаю не так или чего-то не хватает? Будем признательны за любые советы или ссылки на другие материалы.


person Akshat Desai    schedule 13.09.2017    source источник
comment
Как вы воспринимаете эти события? Вы можете показать свой код?   -  person Rita Han    schedule 14.09.2017
comment
@Rita Hab Для получения события я использую функцию azure и пробовал как EventHubTrigger, так и IoT Hub (EventHub) - шаблон JavaScript. Вот как это выглядит: module.exports = function (context, IoTHubMessages) { context.log( Функция триггера javaScript eventhub вызывается для массива сообщений $ {IoTHubMessages} ); IoTHubMessages.forEach(message => { context.log(Processed message $ {JSON.stringify (message)} _ 3_   -  person Akshat Desai    schedule 14.09.2017
comment
@Rita Han для привязки в функции json: {bindings: [{type: eventHubTrigger, name: IoTHubMessages, direction: in, path: iothub-ehub-HUBNAME-192805-73caa1654c, connection: HUBNAME_events_IOTHUB, cardinality: many, consumerGroup: myconsumer} ], отключено: false}   -  person Akshat Desai    schedule 14.09.2017
comment
Ваша обязательная информация выглядит правильной. А как насчет расположения вашего Центра Интернета вещей и функции Azure?   -  person Rita Han    schedule 14.09.2017
comment
да, расположение Центра Интернета вещей и функции Azure отличается, но я по-прежнему получаю обычное сообщение устройства (а не события двойных изменений) в виде журнала в журналах функций Azure.   -  person Akshat Desai    schedule 14.09.2017
comment
Да, разные локации - не проблема. Я хочу проверить, связана ли ваша проблема с указанным местоположением. Можете ли вы перейти на лазурный портал и проверить свой маршрут, указанный в iothub- ›Routes, и его свойство ENABLE истинно?   -  person Rita Han    schedule 15.09.2017
comment
Да, свойство Routes уже ВКЛЮЧЕНО- ›Верно, и я также пробовал оба в том же месте (ЗАПАД США), но все еще не работал   -  person Akshat Desai    schedule 15.09.2017


Ответы (2)


Ваши маршруты настроены правильно. Я предполагаю, что проблема связана с потребителями событий Azure IoT Hub (конечная точка по умолчанию). Вы можете использовать для тестирования инструмент Device Explorer. Следующий фрагмент экрана показывает мой пример:

DeviceExplorer

другой быстрый вариант использования этих событий - создание лазурной функции

using System;

public static void Run(string myIoTHubMessage, TraceWriter log)
{
    log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
}

файл function.json:

{
  "bindings": [
    {
      "type": "eventHubTrigger",
      "name": "myIoTHubMessage",
      "direction": "in",
      "path": "myPath",
      "connection": "myevents_IOTHUB",
      "consumerGroup": "$Default",
      "cardinality": "many"
    }
  ],
  "disabled": true
 }
  • И еще: вы можете нажать кнопку Выполнить, чтобы проверить соответствие. Должно быть показано Результат: совпадение.
person Roman Kiss    schedule 13.09.2017
comment
Я создаю функцию Azure для использования событий Центра Интернета вещей Azure (конечная точка по умолчанию), как вы упомянули, но я не получил никакого двойного триггера обновления, единственное, что я получаю, - это сообщения iot-hub, которые я отправил из пакета SDK устройства. - person Akshat Desai; 13.09.2017
comment
Я также тестирую функции Routes самостоятельно, и в результате получил Result: Match - person Akshat Desai; 13.09.2017
comment
Для обновления двойника устройства я обновляю желаемое значение двойника устройства с портала iot-hub, а также меняю сообщаемое значение из SDK на стороне устройства, но для обоих способов триггера не произошло. - person Akshat Desai; 13.09.2017
comment
у вас есть подтверждение связи между двойником устройства и облачным сервером? Вы можете использовать такой инструмент, как iotdevtool.com или codeproject.com/Articles/1173356/Azure-IoT-Hub-Tester для моделирования устройства MQTT с помощью Azure IoT Hub. Этот тест подтвердит, что двойник устройства обновлен. - person Roman Kiss; 13.09.2017
comment
Кроме того, вы можете использовать мониторинг портала / метрики, чтобы узнать, был ли двойник вашего устройства обновлен с устройства и / или серверной части. - person Roman Kiss; 13.09.2017
comment
да, двойник устройства обновляется правильно из серверной части, и я также проверяю, что функциональность двойника устройства работает нормально. - person Akshat Desai; 14.09.2017
comment
На этом этапе: 1. Маршруты настроены правильно (события двойного изменения, события, Вкл, истина) - 2. AF срабатывает только для сообщений устройства - 3. Используя инструмент, вы получаете подтверждение обновлений двойника устройства на обоих конечные точки, такие как устройство и серверная часть - 4. AF не запускается из уведомлений TwinChangeEvents - 5. Мониторинг портала / метрики показывает, что двойник устройства был обновлен ---- Итак, у меня есть еще один пункт для этого тестового примера, например как создание настраиваемой конечной точки (EventHub) для сообщений TwinChangeEvents - person Roman Kiss; 14.09.2017
comment
Я попробовал настраиваемый EventHub и создал новый маршрут для TwinChangeEvents с недавно созданным настраиваемым EventHub и изменил его в соответствии с AF, но все равно не повезло. - person Akshat Desai; 15.09.2017

Наконец, у меня есть решение, я просто переключаюсь на другую учетную запись и настраиваю все с нуля, все работает отлично.

Единственное отличие, которое я замечаю, - это местоположение в моем старом аккаунте. Местоположение в ЗАПАДНЫХ США и в новом аккаунте в ЦЕНТРАЛЬНЫХ США. Я не нахожу точного решения, но оно работает для меня. Но мне все еще интересно, это проблема с местоположением или что-то еще?

person Akshat Desai    schedule 15.09.2017