如果我在为虚拟网络部署模板之前添加条件,我总是会收到此错误:如果我删除了它的工作条件???
模板部署返回以下错误: 错误:Code = InvalidTemplate;消息=部署模板验证失败:'模板资源' Microsoft.Resources / deployments / dm5DbServer'参考' Microsoft.Resources / deployments / dm5VirtualNetwork'需要API版本。
AutomaticDecompression
正在调用模板:
"resources": [
{
"condition": "[equals(parameters('BuildDatabaseServer'), 'yes')]",
"apiVersion": "2016-02-01",
"name": "[variables('virtualNetworkName')]",
"type": "Microsoft.Resources/deployments",
"dependsOn": [],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('virtualNetworkTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"virtualNetworkName": { "value": "[variables('virtualNetworkName')]" },
"vNetPrefix": { "value": "[variables('vNetPrefix')]" },
"databaseSubnetPrimaryName": { "value": "[variables('databaseSubnetPrimaryName')]" },
"databaseSubnetPrimaryPrefix": { "value": "[variables('databaseSubnetPrimaryPrefix')]" },
"databaseSubnetPrimaryNsgName": { "value": "[variables('databaseSubnetPrimaryNsgName')]" }
}
}
},
答案 0 :(得分:3)
好吧,根据错误判断,你在同一个模板中有另一个子部署(Microsoft.Resources/deployments/dm5DbServer
)并且你正在使用一个引用函数从中获取一些数据并且它失败了,因为你没有提供APIversión它失败了。 Check the docs就此而言。如果您引用的资源未部署在同一模板中,则需要为参考函数提供api-versión。
reference(xxx, '2017-01-01`)
答案 1 :(得分:1)
就我而言,我正在部署有条件的资源。不满足此条件时,部署将失败并显示错误消息。
之所以这样做,是因为我使用var App = React.createClass({
getInitialState() {
return {isDisable: false}
},
handleClick(e) {
this.setState({isDisable: true})
},
render() {
return <div>
<button type="button" onClick={this.handleClick} >Copy List To Below</button>
<button type="button" disabled={!this.state.isDisable}>Save</button>
</div>
}
});
语句在其他地方引用了条件资源。似乎即使资源不应该部署,参考调用仍会得到评估。
在引用调用之前添加条件可解决此问题:
reference(...)