Я пытаюсь понять, как устройства IoT Edge развертывают модули с учетом конкретной политики развертывания устройства. Вот мой тестовый пример:
- На своей машине разработки я создал настраиваемый модуль IoT Edge (по сути, пример CModule по умолчанию из VS Code). Я вручную поместил модуль в свой реестр контейнеров Azure и вручную пометил его 1.0.1 и 1.0.
- Я создал политику развертывания, которая включает в себя мой настраиваемый модуль, например
"modules": {
"MyModule": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "<my_acr.azurecr.io>/mymodule:1.0",
"createOptions": "{}"
}
}
}
- Я создал устройство IoT Edge, которое развертывается с помощью указанной выше настраиваемой политики развертывания (для этого я использую теги). На своем тестовом компьютере я вижу, что изображение докера /mymodule:1.0 становится доступным. Docker ImageID на тестовой машине соответствует ImageID
- Затем на моей машине разработки я очень немного модифицирую модуль и перестраиваю его. Я помечаю новый образ докера модуля с помощью 1.0.2 и 1.0 и помещаю новые теги в ACR. Я вижу на портале, что появляются новые теги.
- Однако моя тестовая машина никогда не получает новую версию модуля. Докер по-прежнему показывает старый ImageID.
Итак, как правильно заставить мою существующую политику развертывания обновлять версию модуля на моем устройстве? Я думал, что на основе https://docs.microsoft.com/en-us/azure/iot-edge/how-to-update-iot-edge#understand-iot-edge-tags мой модуль использует схема скользящих тегов.