OPC Publisher 模块没有在我的 Ubuntu VM 上作为边缘模块启动
Posted
技术标签:
【中文标题】OPC Publisher 模块没有在我的 Ubuntu VM 上作为边缘模块启动【英文标题】:OPC Publisher module does not start on my Ubuntu VM as an edge module 【发布时间】:2021-11-26 18:32:40 【问题描述】:OPC Publisher 市场映像作为独立容器成功运行(尽管存在服务器连接问题)。但我无法将其部署为边缘模块,尤其是在更改容器创建选项之后。
背景:在我的主机笔记本电脑中,我永远无法启动模块,因此我创建了一个 Ubuntu VM。当我尝试使用默认容器创建选项在 VM 中部署边缘模块时,该模块确实在 iotedge 模块列表中显示为“正在运行”。我想设置“--op”选项来设置发布速率,所以我使用门户“设置模块”选项卡在创建选项中更改了它。由于没有更新按钮,我使用创建按钮来“重新创建”模块。在此之后,模块没有出现。
之后,OPC 发布者模块不会显示在边缘 VM 上。我正在关注Microsoft tutorial。
下面是命令:
sudo docker run -v /iiotedge:/appdata mcr.microsoft.com/iotedge/opc-publisher:latest --aa --pf=/appdata/publishednodes.json --c="HostName=<iot hub name>.azure-devices.net;DeviceId=iothubowner;SharedAccessKey=<hub primary key>" --dc="HostName=<edge device id/name>.azure-devices.net;DeviceId=<edge device id/name>;SharedAccessKey=<edge primary key>" --op=10000
容器创建选项:
"Hostname": "opcpublisher",
"Cmd": [
"--pf=/appdata/publishednodes.json",
"--aa",
"--op=10000"
],
"HostConfig":
"Binds": [
"/iiotedge:/appdata"
]
我没有明确指定连接字符串,因为文档 from Microsoft 保证运行时会自动传递它们。
相关的iotedge journalctl日志在这里。
Oct 06 19:36:05 shreesha-VirtualBox iotedged[9622]: 2021-10-06T14:06:05Z [INFO] - Pulling image mcr.microsoft.com/iotedge/opc-publisher:latest...
Oct 06 19:36:08 shreesha-VirtualBox iotedged[9622]: 2021-10-06T14:06:08Z [INFO] - Successfully pulled image mcr.microsoft.com/iotedge/opc-publisher:latest
Oct 06 19:36:08 shreesha-VirtualBox iotedged[9622]: 2021-10-06T14:06:08Z [INFO] - Creating module OPCPublisher...
Oct 06 19:36:08 shreesha-VirtualBox iotedged[9622]: 2021-10-06T14:06:08Z [INFO] - Starting new listener for module OPCPublisher
Oct 06 19:36:08 shreesha-VirtualBox iotedged[9622]: 2021-10-06T14:06:08Z [ERR!] - Internal server error: Could not create module OPCPublisher
Oct 06 19:36:08 shreesha-VirtualBox iotedged[9622]: caused by: Could not get module OPCPublisher
iotedge 本身的日志并没有多大用处。无论如何都可以在下面找到。
~$ iotedge logs OPCPublisher
A module runtime error occurred
为了确定,我也尝试过 docker container prune,但没有帮助。
当我尝试从故障排除页面重新启动模块时,在 Azure 门户中也很奇怪,它会引发错误“在当前环境中找不到模块”
有人可以帮我解决这个问题吗?如果需要,我很乐意分享更多细节。
【问题讨论】:
您可以尝试为您正在运行的操作系统选择特定的 docker 映像吗? docker OPC Publisher 已列出here. 您能否确认您正在运行的 IoTEdge 版本是什么? 1.1 还是 1.2? 在此处查看最新教程:Microsoft OPC Publisher - Standalone Mode 【参考方案1】:根据经理的建议,我使用我公司的订阅在 Azure 门户中提出了支持查询。在发送了支持包并尝试了各种建议(例如删除 DNS 配置、将绑定路径更改为非 sudo 位置等)后,团队将注意力集中在边缘版本不匹配上。
重新阅读文档后,我卸载了早期的 iotedge 包并安装了 aziot-edge,问题解决了!
团队在这里提出了一个 github 问题供公众跟踪:
https://github.com/Azure/Industrial-IoT/issues/1425
@asergaz 也指向了正确的方向,但没有注意到,因为它来得晚了一点
【讨论】:
以上是关于OPC Publisher 模块没有在我的 Ubuntu VM 上作为边缘模块启动的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件从 OPC UA 客户端传输到 OPC UA 服务器