Как связать шаблон в шаблоне Azure ARM? - PullRequest
0 голосов
/ 16 января 2019

У меня есть несколько шаблонов ARM, которые я хочу связать. Но когда я использую "[uri(deployment().properties.templateLink.uri, 'transform.json')]", я получаю сообщение об ошибке, говорящее мне, что deploy () дает объект, который не содержит templateLink, при его локальном запуске или через конвейер AzOv DevOps.

Итак, я попытался отправить путь к артефакту, который я создаю при сборке проекта в DevOps Azure, "[concat(parameters('templateDirectory'), '/transform.json')]", а затем предоставить его в качестве параметра при вызове шаблона. Но тогда я получаю эту ошибку вместо

At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.
Details:
BadRequest: {
"error": {
    "code": "InvalidContentLink",
    "message": "The provided content link 'file:///D:/a/r1/a/_Infrastructure/ARM/shared/transform.json' is invalid or not supported. Content link must be an absolute URI not referencing local host or UNC path."
}
} undefined
Task failed while creating or updating the template deployment.

Итак, мой вопрос заключается в том, как мне обращаться со связыванием шаблонов при развертывании через конвейер AzOv DevOps?

Нужно ли копировать его в хранилище на этапе сборки, чтобы я мог получить к нему доступ с помощью http или https на этапе развертывания, и если да, то как лучше всего это сделать? кажется немного сложным.

1 Ответ

0 голосов
/ 16 января 2019

поэтому, если вы хотите использовать deployment().properties.templateLink.uri, ваш шаблон должен быть развернут из URL, а не с локального диска.

вложенные шаблоны ВСЕГДА должны быть развернуты из URL. поэтому, если вы хотите использовать вышеупомянутый метод, все должно быть загружено в какое-либо место, доступное для общего доступа (или авторизация должна выполняться через URL, например, токен SAS).

Что я обычно делаю - запускаю простой сценарий powershell перед развертыванием, который загружает все шаблоны в общее местоположение, после чего я просто использую функцию развертывания.

...