2

我正在尝试将防火墙部署到 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"

错误内容如下:

“无法处理资源'/subscriptions/****/resourceGroups/networks-hub-rg/providers/Microsoft.Resources/deployments/SettingUpVirtualNetwork'在'1'行和'6637'列的模板语言表达式。'语言表达式属性“templateLink”不存在,可用属性为“模板、参数、模式、provisioningState”。”

现在 Azure 指南明确指出 templateLink 是完全有效的。我之前使用过 templateLink 命令没有任何问题,所以我不明白为什么这次它失败了。是因为我在 uri 行中使用了“templateLink.uri”吗?

以前有人遇到过这个错误吗?有什么建议吗?

4

2 回答 2

2

当涉及到 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

于 2018-12-08T13:40:45.393 回答
1

发生这种情况是因为您需要从 uri 部署模板,而不是从本地存储部署,如果您这样做 - 您的代码将工作

于 2019-01-04T16:52:02.650 回答