OPC Publisher 模块没有在我的 Ubuntu VM 上作为边缘模块启动

OPC Publisher module does not start on my Ubuntu VM as an edge module

OPC Publisher 市场图像作为独立容器成功运行(尽管存在服务器连接问题)。但是我无法将其部署为边缘模块,尤其是在更改容器创建选项之后。

背景:在我的主机笔记本电脑中,我无法启动模块,所以我创建了一个 Ubuntu 虚拟机。当我尝试使用默认容器创建选项在 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 容器修剪只是为了确定,但没有帮助。

同样奇怪的是,在 Azure 门户中,当我尝试从故障排除页面重新启动模块时,它会抛出错误“在当前环境中找不到模块”

有人可以帮我解决这个问题吗?如果需要,我很乐意分享更多详细信息。

我在 Azure 门户中提出了支持查询。在发送支持包并尝试各种建议(例如删除 DNS 配置、将绑定路径更改为非 sudo 位置等)后,团队将注意力集中在边缘版本不匹配上。

重新阅读文档后,我卸载了较早的 iotedge 软件包并安装了 aziot-edge 代替,问题解决了!

团队在此处提出了 public 跟踪的 github 问题:

https://github.com/Azure/Industrial-IoT/issues/1425

@asergaz也指出了正确的方向,但没注意,因为来的有点晚