У меня есть сборка контейнера в gitlab и регистрация в настраиваемом реестре gitlab. Внутри этого контейнера находится команда, которая выполняется очень долго. Я хотел бы как-то развернуть этот контейнер в Azure и запускать этот длительный процесс в новом экземпляре контейнера только по запросу из административной службы api. Я не хочу, чтобы контейнер работал все время, только на время, необходимое для выполнения команды.
Я думал, что этот api администратора может быть классической службой api http rest, размещенной в «Службах приложений» Azure, или, возможно, с использованием новой функции «Приложения-функции» в Azure.
В своем исследовании я обнаружил, что с помощью команд azure cli я могу запустить контейнер следующим образом:
az container create \
--resource-group myResourceGroup \
--name mycontainer2 \
--image microsoft/aci-wordcount:latest \
--restart-policy OnFailure \
--environment-variables NumWords=5 MinLength=8
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables
Я хотел бы сделать это из административного api, предпочтительно используя то, что мне кажется похожим на официальный пакет Azure npm, расположенный здесь:
https://www.npmjs.com/package/azure
В идеале это была бы одна команда для создания и запуска экземпляра, поэтому для меня важна возможность устанавливать переменные среды, как в этом примере, при запуске контейнера. Меня не интересует перенос всего моего кода в Azure, я хотел бы продолжить использовать gitlab для исходного кода и реестра контейнеров, но если есть какая-то причина, по которой мне нужно переключиться на использование реестра контейнеров Azure, мне нужен способ как-то переместите туда регистрацию контейнера с помощью gitlab ci yaml.
Во всех моих поисках я не мог найти никакого способа сделать это, но ближайшая документация, которую я нашел, была здесь:
Я бы обманул и запустил az
с параметром отладки, чтобы он выдавал необработанный API-интерфейс ARM, который он вызывает, и полезную нагрузку JSON. Тогда я бы просто воссоздал запрос в аксиомах или выборке. Чтобы получить токен доступа, я бы просто использовал MSI и даже не заморачивался с OAuth — docs.microsoft.com/en-us/azure/active-directory/. Вот и все, никаких зависимостей. — person slf schedule 01.10.2018
В настоящее время нет возможности официально сделать это из api, может в будущем появится