部署后设备未报告 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 流分析模块的主要内容,如果未能解决你的问题,请参考以下文章
Windows主机上运行Azure IoT Edge的推荐方法