部署后设备未报告 IoT Edge 上的 Azure 流分析模块

Posted

技术标签:

【中文标题】部署后设备未报告 IoT Edge 上的 Azure 流分析模块【英文标题】:Azure Stream Analytics module on Iot Edge not reported by device after deployment 【发布时间】:2018-10-29 15:26:42 【问题描述】:

我创建了一个 ASA 模块并通过 Set Modules 部署它,但在 reported by device 列上分配了 NO

部署成功后出现此状态的原因和含义,如何解决?

这些是我的模块

这是流分析模块的Route

更新 :此模块还具有绝对路径参考数据的附加输入。

我尝试使用带有输入、输出的简单作业部署另一个单独的 ASA 模块,并且它可以工作。那么问题一定出在reference data路径上?

我有另一个模块可以下载./file.txt 中的文件。 (这应该在 /app/file.txt 中?)

我希望 ASA 模块将已下载的文件作为本地参考数据读取。我应该在job 中放入什么参考数据目录。现在我正在尝试/app/file.txt

【问题讨论】:

嗨。您能否确认 ASA 作业是否在设备上成功运行?您可以在设备上使用以下命令查看日志: docker logs ModuleName 嗨@Jean-Sébastien,我在本地模拟设备上输入iotedge list 时看不到它。它仅在带有 Reported by device - NO 的 Azure 门户上可见 我明白了,在这种情况下,似乎部署不成功(设备离线)或模块出现问题并且容器已停止。您能否查看是否曾经通过运行 docker ps -a 启动过 ASA 容器?如果您在列表中看到 ASA,是否可以获取它的日志,否则您可以将 IoT Edgehub 和 Edgeagent 的日志发送到我们的 DL 进行调查:askASA@microsoft.com @Jean-Sébastien 我注意到这个问题取得了一些进展并更新了这个问题。输入 docker ps -a 后我没有看到我的模块 【参考方案1】:

“Reported by device”中的“no”表示该模块没有任何状态可报告,通常表示该模块没有创建成功。在您的情况下,在创建容器期间将引用数据的路径绑定到容器时一定会出错。

你的主机操作系统和容器操作系统是什么? 如果您的主机操作系统与容器操作系统匹配,请使用绝对路径而不是 ./ 如果您在 windows 主机上运行 Linux 容器,请首先创建一个卷,将引用数据填充到卷并提供卷中的绝对路径,例如。 Vol1/file1.txt

谢谢!

【讨论】:

好的,我知道了。最后一件事。创建卷后,检查后它看起来像this。有不同的问题讨论这个问题,但 CreateOptions 应该是什么样子?这很令人困惑,因为Docker Engine API 具有Volumes 属性,并且这些问题中的一些示例使用Mounts 属性。样品将不胜感激。 没关系,找到了here 当您从 iotedge 门户导入 ASA 模块时,我们应该自动生成“CreateOption”以将卷绑定到容器。如果没有,请告诉我。

以上是关于部署后设备未报告 IoT Edge 上的 Azure 流分析模块的主要内容,如果未能解决你的问题,请参考以下文章

使用Harbor+Auzre IOT Edge构建智能边界

为 IoT Edge 部署 Azure 流分析作业

Windows主机上运行Azure IoT Edge的推荐方法

IoT 中心到 Azure Edge

Azure IOT Edge 设备能否连接到多个 Azure IOT Hub?

从Azure IoT Edge容器模块打开要托管的端口