Развертывание 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

Другие вопросы по тегам