微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 Azure Edge 中执行模块到模块的通信

如何解决无法在 Azure Edge 中执行模块到模块的通信

我试图在 Azure edge 上实现从 c# 模块到 python 模块的模块到模块通信,

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

发送数据的c#代码

        {
            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

在 C# 代码中我没有得到任何异常,但是在 python 模块中我也没有得到任何数据。

解决方法

通过更新requirement.txt 文件中的azure-iot-device 包解决了该问题,默认情况下,在创建模块时它会安装2.0.0 版本的包,但最新版本是2.8。在最新版本中,通信工作正常。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。