IoT Edge: устройство не может загрузить мой модуль из реестра контейнеров Azure, но оно может сделать это из dockerhub - PullRequest
0 голосов
/ 11 ноября 2018

Я следовал этому лазурному примеру , чтобы разработать мой модуль connectedbarmodule на python для Azure IoT Edge. Затем я последовал по этой ссылке , чтобы развернуть мой модуль на моем устройстве (raspberry pi 3). Тем не менее, мой модуль не может быть загружен. Затем я выполнил следующую команду на моем устройстве:

sudo docker logs -f edgeAgent

У меня следующая ошибка:

Error calling Create module ConnectedBarModule:
Get https://iotedgeregistery.azurecr.io/v2/connectedbarmodule/manifests/0.0.1-amd64:
unauthorized: authentication required) 

Это URL относительно моего реестра контейнеров Azure, в котором хранится образ моего модуля. Я не знаю, как получить учетные данные для iotedge, чтобы загрузить мой модуль.

Я проверил случай, чтобы загрузить изображение не в реестре контейнеров Azure, а в моей учетной записи dockerhub, и оно работает, мое устройство может загрузить модуль.

Если у кого-то есть идея, это будет очень любезно.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Для вашей проблемы вы можете использовать команду docker login -u <ACR username> -p <ACR password> <ACR login server>, которая показана в примере, который вы опубликовали. Что касается аутентификации Azure Container Registry, вы можете выбрать один из двух способов.

Одним из них является использование имени пользователя и пароля, которые отображаются в вашем ACR на портале Azure.

enter image description here

Другое - то, что вы можете использовать Azure Service Principal, вы можете установить разрешение для пользователя. Выполните документ Аутентификация реестра контейнеров Azure с принципалами службы . Я бы предложил этот способ гораздо больше, чем первый, потому что он безопаснее.

Это всего лишь совет. Надеюсь, это поможет вам, и если вам нужна дополнительная помощь, пожалуйста, покажите мне сообщение.

0 голосов
/ 12 ноября 2018

Ваш реестр контейнеров Azure является частным. Следовательно, вам необходимо добавить учетные данные для него, чтобы edgeAgent мог загружать изображения из частных реестров:

  • Через портал Azure: на первом этапе «Установка модулей» enter image description here

  • Когда выполняется через развертывание в коде Visual Studio:

"В проводнике кода VS откройте файл .env. Обновите поля с помощью значения имени пользователя и пароля, которые вы скопировали из своего Azure контейнерный реестр. "(https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-c-module#add-your-registry-credentials)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...