Маршрут не работает, так как тип кодировки содержимого не задан. Все «системные свойства» в вашем коде фактически являются телом сообщения, а не системными свойствами. Тип кодировки содержимого, установленный этим методом, не вступает в силу.
Добавьте "$ .ct = application% 2Fjson & $. Ce = utf-8" в тему. Тогда это будет выглядеть так:
devices/{yourDeviceId}/messages/events/$.ct=application%2Fjson&$.ce=utf-8
Но чтобы запрос маршрута работал с вашим сообщением, вам нужно использовать следующую строку запроса: $ body.message.body.id = 1
Два редактирования:
Сначала измените body = '{id:1}'
на body = {"id":1}
, чтобы сделать идентификатор в виде строки.
Во-вторых, измените topicName
значение на это:
devices/{yourDeviceId}/messages/events/$.ct=application%2Fjson&$.ce=utf-8
Если возможно, рекомендуется использовать Azure IoT SDK для Python для связи с концентратором IoT Azure.