【问题标题】:Use [deployment().properties.templateLink.uri] on local deployments through ARM templates通过 ARM 模板在本地部署上使用 [deployment().properties.templateLink.uri]
【发布时间】:2019-07-25 14:31:11
【问题描述】:

当我尝试使用 ARM linked Template 时...

    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2018-05-01",
      "name": "[concat('EventHubLinkedTemplate-', parameters('eventHubNames')[copyindex('eventHubNameIterator')])]",
      "copy": {
        "name": "eventHubNameIterator",
        "count": "[length(parameters('eventHubNames'))]"
      },
      "properties": {
        "mode": "Incremental",
        "templateLink": {
          "uri": "[uri(deployment().properties.templateLink.uri, '/eventHub/template.json')]",
          "contentVersion": "1.0.0.0"
        },
        "parameters": {
          "consumerGroups": "[parameters('consumerGroups')]",
          "eventHubName": "[concat(variables('eventHubNamespace'), '/', parameters('eventHubNames'))]"
        }
      }
    }

...来自父 ARM 模板,使用 Visual Studio 2019 ARM 项目的部署选项,部署在下一条消息中失败:

07:48:12 - Resource Microsoft.Resources/deployments 'EventHubLinkedTemplate-test' failed with message '{
  "error": {
  "code": "InvalidTemplate",
  "message": "Unable to process template language expressions for resource '/subscriptions/********-****-****-****-************/resourceGroups/*****/providers/Microsoft.Resources/deployments/EventHubLinkedTemplate-test' at line '127' and column '9'. 'The language expression property 'templateLink' doesn't exist, available properties are 'template, templateHash, parameters, mode, provisioningState'.'",
    "additionalInfo": [
      {
        "type": "TemplateViolation",
        "info": {
          "lineNumber": 127,
          "positionNumber": 9,
          "snippet": ""
        }
      }
    ]
  }
}'

有人知道通过 ARM 模板在本地部署中使用 [deployment().properties.templateLink.uri] 的任何方法吗?

据我在文档中找到的,似乎还不支持...

【问题讨论】:

    标签: azure-resource-manager


    【解决方案1】:

    不,这是不可能的。

    正如official article所说:

    只有在使用 URL 链接到远程模板时才会返回 templateLink 属性。如果您使用的是本地模板,则该属性不可用。

    【讨论】:

      【解决方案2】:

      不,这是不可能的,因为您必须上传模板(否则,您将如何获得链接??)。

      一个简单的解决方法是使用一个 powershell 脚本来上传所有内容并开始部署。无论如何,使用 Visual Studio 进行 ARM 模板开发并不是最好的体验。

      【讨论】:

      • 确实,不是最好的体验。但是出于测试目的,它非常好。谢谢你的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多