参考' Microsoft.Resources / deploymentments /'需要API版本

时间:2018-02-09 11:21:01

标签: azure

如果我在为虚拟网络部署模板之前添加条件,我总是会收到此错误:如果我删除了它的工作条件???

模板部署返回以下错误: 错误: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')]" }
    }
  }
},

2 个答案:

答案 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(...)