Маршрутизация Azure IoTHub не функционирует

#azure-iot-hub #azure-iot-sdk #azure-iot-hub-device-management

#azure-iot-hub #azure-iot-sdk #azure-iot-hub-управление устройствами

Вопрос:

У меня есть следующий запрос маршрутизации, определенный в Azure IoTHub: $body.messageType="Test"

И использование Microsoft.Azure.Devices.Client" SDK Version="1.28.0"

Вот мой очень простой код на C #.

             var device = DeviceClient.CreateFromConnectionString(DeviceConnectionString);
       
            await device.OpenAsync();

            var obj = new
            {
                messageType = "Test"
            };

            var telemetryJson = JsonConvert.SerializeObject(obj);

            var message = new Message(Encoding.UTF8.GetBytes(telemetryJson));

            // Set message body type and content encoding. 
            message.ContentEncoding = "utf-8";
            message.ContentType = "application/json";

            await device.SendEventAsync(message);
  

Сообщение доставляется на IoTHub, но маршрутизация не применяется! Есть идеи, почему?

Комментарии:

1. строка запроса маршрутизации в порядке. Не могли бы вы опубликовать фрагмент экрана с подробной информацией о маршруте?

2. кроме того, для целей тестирования добавьте маршрутизацию сообщений телеметрии устройства (true) в большой двоичный объект хранилища. Вы должны увидеть текст сообщения в формате json, такой как { «MessageType»:»Test» }

3. также IoT Hub выдает диагностические журналы для маршрутов, которые могут помочь

Ответ №1:

Не могли бы вы попробовать это с помощью одинарных кавычек, подобных этой $body.messageType='Test' ?

Ответ №2:

Я заметил, что поведение ресурса IoTHub вообще не было нормальным. Начали появляться различные типы сообщений об ошибках, похожие IotHub is not in an Active state на что угодно.

Удаление и повторное создание ресурса решило проблему.