如何在ARM模板的Output段访问contentVersion?部署Azure Web应用遇错
正确获取ARM模板中contentVersion的方法
哦,这个问题我碰到过好多次啦!你之所以会收到“Unable to evaluate template outputs”的错误,核心原因是对contentVersion的定位搞错了——它是ARM模板自身的顶层元数据属性,不是你部署到Azure的某个资源,所以完全不能用reference()函数来访问它(这个函数是专门用来拉取已部署资源的运行时属性的)。
你之前试的几种写法都没找对路子,给你两种靠谱的正确写法:
方法一:直接读取模板自身的contentVersion
用ARM模板内置的template()函数,它可以直接获取模板的元数据信息,包括contentVersion:
"outputs": { "ContentOutput": { "type": "string", "value": "[template().contentVersion]" } }
方法二:提前将contentVersion存入变量(可选)
如果你习惯把模板元数据存在变量里统一管理,也可以先在variables段定义,然后直接引用变量:
"variables": { "templateContentVersion": "[template().contentVersion]" }, "outputs": { "ContentOutput": { "type": "string", "value": "[variables('templateContentVersion')]" } }
简单说,记住contentVersion是模板自己的属性,不是Azure资源,别用reference()去碰它,用template()函数直接读就完事啦!
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

