Развертывание группы ресурсов Azure с помощью связанного шаблона ARM из непубличного GIT - PullRequest
0 голосов
/ 05 сентября 2018

Могу ли я использовать параметр -TemplateUri из New-AzureRmResourceGroupDeployment, указывающий на непубличный ресурс GIT (не GitHub)?

Есть ли другой способ использовать GIT в качестве источника для шаблонов ARM и связанных шаблонов (без использования хранилища Azure или взлома функции Azure - описано ниже)?

Дополнительная информация по вышеуказанным вопросам:

Я пытаюсь выделить некоторые ресурсы, используя конвейер сборки VSTS, однако ради этого вопроса я ограничу его powershell New-AzureRmResourceGroupDeployment команда.

Рабочий сценарий (без связанного шаблона)

New-AzureRmResourceGroupDeployment -ResourceGroupName RG -TemplateFile path_to_local_template/template.json

Если template.json не имеет связанных / вложенных шаблонов, все работает правильно. Когда я добавляю связанный шаблон, он начинает отказывать из-за неизвестного расположения файла связанного шаблона. Это совершенно ясно - потому что связанный шаблон находится на моем локальном компьютере (или на компьютере агента) и не виден из Resource Manager.

Я решил использовать параметр -templateUri (template.json находится в репозитории Git)

New-AzureRmResourceGroupDeployment -ResourceGroupName RG -TemplateUri https://<org>.visualstudio.com/<proj>/_apis/git/repositories/..../items?path=.../template.json

Git Api Ссылка на ресурс прекрасно работает через браузер, если я вошел в систему (так что это правильно).

При выполнении вышеупомянутой команды я получаю (XXX точно такой же, как предоставленный templateUri):

##[error]Failed to download the file. URL: XXX . Error: 302: Found

Опять же, довольно очевидно - из-за перенаправления авторизации.

Я нашел хорошее сообщение в блоге от Тао Яна о том же, но для GitHub. Ему пришлось взломать его, используя функции Aruze в качестве прокси для получения шаблона json. Я хотел бы избежать прокси в моем решении.

Другой подход заключается в использовании хранилища Azure и токена SAS для этого. То есть копирование шаблонов из Git в хранилище Azure и последующий доступ к нему по URL-адресу с использованием токена SAS. Я бы тоже хотел не использовать хранилище Azure.

Я пытался использовать публичный токен для доступа к template.json через git api, как упоминалось в одном из ответов на SO , поэтому URL к шаблону выглядит так:

https://name:<token>@<org>.visualstudio.com/<proj>/_apis/git/repositories/..../items?path=.../template.json

Однако я все еще получаю ошибку 302.

Конечно, если я получу работу teplateUri, то следующим шагом будет заставить его работать со связанным шаблоном, который также должен быть получен из Git.

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