首页 > 解决方案 > 显示旧数据的 Azure IoT Edge tempSensor 模块

问题描述

作为教程的一部分,我首先在 Linux 上进行了 Azure iot edge 部署,它运行良好。但是,在此之后,我使用 Visual Studio 代码中的 python 部署了 tempSensor 过滤器模块,部署了 PythonModule 但 D2C 消息仍然很旧,并且没有发生过滤。我看到 tempSensor 的旧图像不断弹出,显示 EdgeVM 上的旧创建日期。我在下面做了这些来删除旧图像,但它仍然是一样的。

  1. 在 Iothub 中,我通过设置模块页面删除了模块
  2. 我删除(使用清除)整个 iotedge 运行时并重新安装它
  3. 从 docker 中删除了容器和图像,但没有成功我希望删除旧图像,当我从 Visual Studio 代码部署时,应该会出现新的过滤消息

标签: azure-iot-hubazure-iot-edge

解决方案


我在下面做了这些以删除旧图像,但没有运气。

根据您的尝试,从 azure 门户中删除模块或使用清除删除本地资源。您需要显示您执行的步骤或错误消息或您看到的非预期内容,以便我们进行进一步调查。

关于如何排查和获取日志信息,可以参考“Azure IoT Edge 的常见问题和解决方法”。

在这里,我将展示有关如何从 azure 门户和本地命令行中删除模块的信息。您可以与您所做的比较,然后再试一次。如果仍然无法正常工作,请随时在此处发布错误消息等。

从 azure 门户中删除模块

  1. 点击设备
  2. 单击设置模块按钮

在此处输入图像描述

  1. 选中模块旁边的复选框
  2. 点击删除按钮

在此处输入图像描述

  1. 点击下一步

在此处输入图像描述

  1. 再次单击下一步
  2. 点击提交
  3. 然后您将看到待删除

在此处输入图像描述

如果您的 Edge 运行时在设备上运行,则该模块将被删除

在此处输入图像描述

从本地删除:

如果要从设备中删除 IoT Edge 运行时和相关资源,请使用以下命令。

删除 IoT Edge 运行时。

sudo apt-get remove --purge iotedge

删除 IoT Edge 运行时后,它创建的容器将停止,但仍存在于您的设备上。查看所有容器。

sudo docker ps -a

删除在您的设备上创建的运行时容器。

docker rm -f edgeHub
docker rm -f edgeAgent

通过引用容器名称删除 docker ps 输出中列出的任何其他容器。

删除容器运行时。

sudo apt-get remove --purge moby

将新模块添加到以前的部署:

如果您正在运行 edgeAgent、edgeHub 和 tempSensor 模块。当您想添加一个新模块(如您尝试过的温度传感器过滤器模块)时,您可以通过 VS Code 创建和构建新模块,然后选择边缘设备并选择为 IoT Edge 设备创建部署。要在 VS Code 中查看边缘设备,您需要为 Visual Studio Code 安装 Azure IoT Edge 扩展,然后登录 azure。您可以参考“从 Visual Studio Code 中部署和监视模块”的更多信息和步骤。

从 VS Code 查看设备上的模块:

将模块部署到设备后,可以在 Azure IoT 中心设备部分查看所有模块。选择 IoT Edge 设备旁边的箭头以将其展开。显示所有当前正在运行的模块。

如果您最近将新模块部署到设备,请将鼠标悬停在 Azure IoT 中心设备部分标题上,然后选择刷新图标以更新视图。


推荐阅读