Как я могу получить имя устройства из пользовательского модуля IoT Edge (python) - PullRequest
1 голос
/ 27 марта 2019

РЕЗЮМЕ

Я не получаю ожидаемое имя хоста от устройства при запросе его через код Python;Я получаю некоторый идентификатор контейнера

ФОН

При запуске следующего кода на Raspbian в Python 3:

import socket
print(socket.gethostname())

или:

import platform
platform.node()

... вы получаете имя хоста машины, на которой запускаете код.(Это то, что я ожидаю)

Когда вы делаете то же самое с модулем Custom IoT Edge, вы получаете какой-то идентификатор для якобы контейнера?

Как вы можете получить имя хоста системыконтейнер работает внутри самого модуля контейнера?

РЕШЕНИЕ

Как и предполагалось, идентификатор устройства и идентификатор модуля отображаются в виде переменных среды: IOTEDGE_DEVICEID и IOTEDGE_MODULEID.

Так что теперь в python вы можете сделать следующее:

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

И затем использовать переменные, подобные этой, в вашем (python) коде в дальнейшем.

1 Ответ

0 голосов
/ 27 марта 2019

См. здесь для аналогичного вопроса.Краткий ответ: сделайте docker inspect в своем контейнере пользовательского модуля и посмотрите, какие переменные среды доступны.Одним из них является имя хоста вашего устройства Edge.

...