如果在为虚拟网络部署模板之前添加条件,则总是会收到此错误:如果删除条件,它将起作用???
模板部署返回以下错误:错误:Code = InvalidTemplate; 消息=部署模板验证失败:模板资源'Microsoft.Resources / deployments / dm5DbServer'对'Microsoft.Resources / deployments / dm5VirtualNetwork'的引用需要一个API版本。
"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')]" }
}
}
},
Run Code Online (Sandbox Code Playgroud)
模板被调用:
{
"name": "[parameters('virtualNetworkName')]",
"type": "Microsoft.Network/virtualNetworks",
"location": "[resourceGroup().location]",
"apiVersion": "2016-03-30",
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('databaseSubnetPrimaryNsgName'))]",
],
"tags": {
"displayName": "[parameters('virtualNetworkName')]"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vNetPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('databaseSubnetPrimaryName')]",
"properties": {
"addressPrefix": "[parameters('databaseSubnetPrimaryPrefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('databaseSubnetPrimaryNsgName'))]"
}
}
}
{
"condition": "[equals(parameters('BuildDatabaseServer'), 'yes')]",
"apiVersion": "2016-02-01",
"name": "[variables('databaseServerName')]",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"[resourceId('Microsoft.Resources/deployments', variables('virtualNetworkName'))]"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('commonTemplateArchiveFolder'), '/', variables('virtualMachineTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"serverName": { "value": "[variables('databaseServerName')]" },
"adminUserName": { "value": "[variables('databaseServerAdminUserName')]" },
"adminPassword": { "value": "[parameters('databaseServerAdminPassword')]" },
"serverWindowsOSVersion": { "value": "[parameters('databaseServerWindowsOSVersion')]" },
"serverVmSize": { "value": "[variables('databaseServerVmSize')]" },
"primaryNetworkSecurityGroupName": { "value": "[variables('databaseSubnetPrimaryNsgName')]" },
"primarySubnetRef": { "value": "[reference(variables('virtualNetworkName')).outputs.databaseSubnetPrimaryRef.value]" },
"primaryPrivateIPAddress": { "value": "[variables('databaseServerPrimaryPrivateIPAddress')]" },
"serverOsDiskStorageAccountType": { "value": "[variables('databaseServerOSDiskStorageAccountType')]" },
"serverDataDiskStorageAccountType": { "value": "[variables('databaseServerDataDiskStorageAccountType')]" },
"serverDataDiskSizeGB": { "value": "[variables('databaseServerDataDiskSizeGB')]" },
"monitoringAgentWorkspaceID": { "value": "[parameters('monitoringAgentWorkspaceID')]" },
"monitoringAgentWorkspaceKey": { "value": "[parameters('monitoringAgentWorkspaceKey')]" },
"customscripts": { "value": "[variables('customScripts')]" }
}
}
},
Run Code Online (Sandbox Code Playgroud)
好的,从错误的角度来看,您Microsoft.Resources/deployments/dm5DbServer在同一模板中还有另一个子部署(),并且您正在使用引用函数从该模板中获取一些数据,但它失败了,因为您没有提供API版本,因此失败了。检查有关此文档。如果您要引用的资源没有部署在同一模板中,则需要为引用函数提供api-versión。
reference(xxx, '2017-01-01`)
Run Code Online (Sandbox Code Playgroud)
就我而言,我正在部署有条件的资源。如果不满足此条件,部署将失败并显示上述错误消息。
原因是我使用该reference(...)语句在其他地方引用了条件资源。即使不应该部署资源,引用调用似乎仍然会被评估。
在引用调用之前添加一个条件解决了该问题:
if({condition}, {original Statement}, 'resource not deployed')
| 归档时间: |
|
| 查看次数: |
736 次 |
| 最近记录: |