Отправка данных в Azure IoT-центр с использованием REST - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь изучить Azure IoT-концентратор, но не могу отправить данные в свой IoT-концентратор с помощью Postman. Я сделал следующее:

  • Создать Azure IoT-концентратор
  • Создать устройство, используя Azure Portal CLI
  • Скопировал текст, в котором говорилось: «первичный ключ "на странице устройства

Мой запрос выглядит следующим образом:

POST https://myhub.azure-devices.net/devices/MyDevice/messages/events?api-version=2020-03-13

Я добавил заголовок авторизации, который имеет значение: SharedAccessSignature = SharedAccessSignature sr = myhub. azure -devices.net% 2Fdevices% 2FMyDevice & sig = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Где ключ - это скопированный текст со страницы устройства.

Content-type установлен на application / json. Но тело на данный момент пусто.

Я получаю следующий ответ:

«Сообщение»: «Код ошибки: ServerError; InternalServerError»,

Примечание. Имя концентратора и устройства не совпадают с указанными здесь. .

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Для быстрого начала у нас есть 3 этапа 1) Генерация ключа SAS из кода Visual Studio см. Изображения ниже (Или из интерфейса командной строки, см. Ответ, опубликованный silent) 2) Используйте Postman 3) Монитор через код VS

Шаги: VS Code

1) Установите инструменты расширения VS Code для Azure IoT и подключите свой IoT Hub согласно инструкциям на экране

enter image description here enter image description here

2) Вы можете увидеть список устройств в VS code Explorer. Теперь щелкните правой кнопкой мыши устройство (созданное на портале) и выберите «Создать токен SAS для устройства», укажите время в часах, например, 24, и нажмите Enter. Скопируйте ключ SAS из окна вывода полностью (полностью). Пример показан ниже.

SharedAccessSignature sr = deviothub. azure -devices.net% 2Fdevices% 2FNewDevice & sig = H3II% 2FCa5Km5V2pieP5Ti1SI% 3D & se = 1590867649

22 * ​​1021 * 1021 1024 *

enter image description here

Шаги Почтальон

1) Надеюсь, вы уже просматривали этот документ on Azure IoT Hub REST API Замените необходимые разделы на свои значения IoT Hub.

POST https: //fully-qualified-iothubname.azure -devices. net / devices / {id} / messages / events? api-version = 2020-03-13

2) Не забудьте включить полностью скопированный токен SAS и используйте его в разделе заголовка вызова POST

enter image description here

3) Содержимое: это зависит от вашего варианта использования. пример 'raw' - JSON -> {"Temperature": 54}

** Вы можете увидеть принятый ответ от IoT Hub как '204 No Content'

Шаг Простой способ мониторинга телеметрии

1) Откройте редактор кода VS, щелкните правой кнопкой мыши конкретное устройство и выберите «Начать мониторинг встроенных событий»

enter image description here

2) Отправьте еще одну телеметрию от Postman, и вы увидите, что сообщение прибыло в IoT Hub и отображается на экране мониторинга кода VS.

enter image description here

Счастлив Azure Обучение IoT

1 голос
/ 29 мая 2020

Вам нужно рассчитать заголовок auth на основе вашего первичного ключа, а не просто поместить его в заголовок. См. здесь для примеров, как это сделать, например, используя CLI az iot hub generate-sas-token

...