如何从IoT Edge自定义模块(python)中获取设备名称

时间:2019-03-27 08:40:50

标签: python azure-iot-edge

摘要

通过python代码请求设备时,我没有从设备获得期望的主机名;我得到一些容器ID

背景

在python 3的Raspbian上运行以下代码时:

import socket
print(socket.gethostname())

或:

import platform
platform.node()

...您将获得运行代码的计算机的主机名。 (这就是我的期望)

从Custom IoT Edge模块执行相同操作时,您会得到某种我认为是容器的标识符吗?

如何在容器模块本身中获取容器所运行的系统的主机名?

解决方案

如建议的那样,设备ID和模块ID作为环境变量公开: IOTEDGE_DEVICEID和IOTEDGE_MODULEID。

因此,现在在python中,您可以执行以下操作:

DEVICEID = os.environ["IOTEDGE_DEVICEID"]
MODULEID = os.environ["IOTEDGE_MODULEID"]

然后在您的(python)代码中使用类似的变量。

1 个答案:

答案 0 :(得分:0)

有关类似问题,请参见here。简短的答案:在自定义模块容器上执行docker inspect并查看可用的不同环境变量。其中之一是Edge设备的主机名。