Развертывание Azure ARM - TemplateLink не является существующим свойством выражения языка
Я пытаюсь развернуть брандмауэр в Azure. Когда я проверяю шаблон в Jenkins, он говорит, что все в порядке. Когда я пытаюсь запустить шаблон, он выдаёт мне ошибку на этом этапе:
"name": "SettingUpVirtualNetwork",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2017-05-10",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[uri(deployment().properties.templateLink.uri, 'vnet.json')]",
"contentVersion": "1.0.0.1"
Ошибка гласит:
"Невозможно обработать выражения языка шаблонов для ресурса" /subscription/****/resourceGroups/networks-hub-rg/providers/Microsoft.Resources/deployments/SettingUpVirtualNetwork'в строке'1'и столбце'6637'. ' Язык Свойство выражения 'templateLink' не существует, доступными свойствами являются 'template, параметры, mode, provisioningState'.'"
Теперь руководство Azure четко заявляет, что templateLink является абсолютно допустимым. Я использовал команду templateLink раньше без проблем, поэтому я не понимаю, почему она терпит неудачу на этот раз. Это из-за моего использования "templateLink.uri" в строке uri?
Кто-нибудь сталкивался с этой ошибкой раньше? Любой совет?
2 ответа
Это происходит потому, что вам нужно развернуть шаблон из URI, а не из локального хранилища, если вы это сделаете - ваш код будет работать
Когда дело доходит до неожиданного поведения при развертывании ARM-шаблонов, я всегда пытаюсь проверить версию API. В вашем случае я бы попробовал следующий код:
"name": "SettingUpVirtualNetwork",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2018-05-01",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[uri(deployment().properties.templateLink.uri, 'vnet.json')]",
"contentVersion": "1.0.0.1"
См. https://docs.microsoft.com/en-us/azure/templates/microsoft.resources/2018-05-01/deployments