Как запустить экземпляр контейнера с помощью API Azure?

У меня есть сборка контейнера в 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.

Во всех моих поисках я не мог найти никакого способа сделать это, но ближайшая документация, которую я нашел, была здесь:

https://docs.microsoft.com/en-us/javascript/api/azure-arm-containerservice/containerserviceclient?view=azure-node-latest

Я бы обманул и запустил az с параметром отладки, чтобы он выдавал необработанный API-интерфейс ARM, который он вызывает, и полезную нагрузку JSON. Тогда я бы просто воссоздал запрос в аксиомах или выборке. Чтобы получить токен доступа, я бы просто использовал MSI и даже не заморачивался с OAuth — docs.microsoft.com/en-us/azure/active-directory/. Вот и все, никаких зависимостей.   —  person slf    schedule 01.10.2018

См. также:  Сохранение файла в / tmp в лямбде изнутри папки
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. slf

    В настоящее время нет возможности официально сделать это из api, может в будущем появится

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: