将基于Python的IoT边缘模块部署到Raspberry Pi的问题

时间:2018-08-22 19:05:51

标签: docker raspberry-pi3 azure-iot-sdk azure-iot-edge

我正在尝试部署一个简单的自定义Azure IoT边缘模块,该模块读取我的raspberry pi(运行Raspbian OS)中的文件,并使用Windows 10 PC上的VS Code将其发送到云中。

但是,在树莓派上运行的自定义模块似乎存在问题。

我通过以下方式在部署JSON文件中为docker容器设置模块配置:

"PythonModuleNest": {
    "version": "1.0",
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "${MODULES.PythonModuleNest.arm32v7}", 
      "createOptions": "{\"HostConfig\":{\"Devices\": [{\"PathOnHost\": \"/home/pi/Offering2/test/Nest\",\"PathInContainer\": \"/home/pi/Offering2/test/Nest\",\"CgroupPermissions\": \"rwm\"}]}}"
    }
}

当我将“图像”选项设置为"${MODULES.PythonModuleNest.arm32v7}”并尝试使用VScode进行构建和推送时,我在集成终端中收到此错误:

Step 3/9 : RUN apt-get update &&     apt-get install -y --no-install-recommends libboost-python1.55.0 &&     rm -rf /var/lib/apt/lists/*<o:p></o:p>

---> Running in f68e79aa957f

standard_init_linux.go:190: exec user process caused "exec format error"

The command '/bin/sh -c apt-get update &&     apt-get install -y --no-install-recommends libboost-python1.55.0 &&     rm -rf /var/lib/apt/lists/*' returned a non-zero code: 1

因此,我还尝试将其更改为默认值"${MODULES.PythonModuleNest.amd64}"。这次,它已构建并被推送到Azure容器存储库,但是当我将其部署到边缘设备时,它无法正常工作。在蔚蓝门户上,它显示“退避”状态和“ 500:边缘运行时错误”。尽管edgehub,edgeagent和模拟温度传感器模块运行正常,但它在边缘上不起作用,并且在运行iotedge list时仅显示“失败”。当我尝试其他图像设置(包括“ image”:“ first.azurecr.io/ pythonmodulenest:0.0.1-amd64”,“ image”:“ first.azurecr.io/pythonmodulenest:0.0.1-arm32v7)时,遇到相同的问题”和“ mcr.microsoft.com/azureiotedge-functions-binding:1.0.0-linux-arm32v7”。当我从教程中部署示例CSharp模块时,也会出现“退避”状态。https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-function

请您在理解问题可能是什么以及如果我的“ createOptions”配置足以读取Raspberry Pi上的文件时提供帮助,我将不胜感激。我还应该提到我正在使用python进行开发。

0 个答案:

没有答案