Не удается выполнить обмен данными между модулями в Azure Edge.

Я пытался добиться связи модуля с модулем на границе Azure из модуля С# в модуль python,

Using Ubuntu as OS 
Edge Runtime: 1.0.8 
EdgeAgent 1.0.10 
EdgeHub 1.0.10

Код С#, куда отправляются данные

        {
            Console.WriteLine($"Received message: [{cloudtoDeviceMessages}]"); // cloudtoDeviceMessages is a string 

            await moduleClient.SendEventAsync("serialmoduleoutput", new Message(Encoding.UTF8.GetBytes(cloudtoDeviceMessages)));

            Console.WriteLine("Sent The Method Body To Serial Module");

Маршруты в файле развертывания, у меня есть и другие маршруты модулей, но я даю только соответствующий

Fromc2dcommunicationmoduleToTestModule": "FROM /messages/modules/c2dcommunicationmodule/outputs/serialmoduleoutput INTO BrokeredEndpoint(\"/modules/TestModule/inputs/input1\")",

Код Python: такой же, как в этом примере GitHub https://github.com/Azure/azure-iot-sdk-python/blob/master/azure-iot-device/samples/sync-samples/receive_message_on_input..py

В коде С# я не получаю никаких исключений, однако в модуле python я также не получаю никаких данных.


person ArnabGhosh    schedule 17.02.2021    source источник
comment
Есть ли в логах принимающего модуля что-нибудь полезное? Или, возможно, edgeAgent регистрирует в случае сбоя принимающего модуля. Также может быть полезно включить файл развертывания.   -  person Matthijs van der Veer    schedule 18.02.2021
comment
Хорошо, я также включу журналы для пограничного агента, концентратора и файла развертывания.   -  person ArnabGhosh    schedule 18.02.2021


Ответы (1)


Проблема была решена путем обновления пакета azure-iot-device в файле require.txt, по умолчанию при создании модуля он устанавливает пакет с версией 2.0.0, но последняя версия — 2.8. в последней версии связь работает нормально.

person ArnabGhosh    schedule 18.02.2021