在模板下面部署:
https://gist.github.com/rnkhouse/aea0a8fd395da37b19466348b919d620
错误:
“部署失败,状态码为:400,消息:部署模板验证失败:'资源'Microsoft.Network/virtualNetworks/mtes-dev-VNET'未在模板中定义。有关使用详情,请参阅https://aka.ms/arm-template。'。”
我已经在其他模板中创建了虚拟网络,并在此处使用相同的资源组。但是,我仍然犯了错误。请指教!
在代码中删除dependsOn
Vnet,只有当该资源是模板的一部分时才需要它,而不是在已经部署的情况下。
对于此处搜索“资源未在模板中定义”的其他任何人,此错误消息的另一个可能原因是表单的引用:
reference('<some complete id outside this template>')
要么
listkeys('<some complete id outside this template>')
错误消息不会告诉您,但在引用当前模板外部定义的资源时,您需要包含API版本。
EG
reference('<some complete id outside this template>', '2018-03-01')
我遇到了这个问题,搜索相同的错误代码。我有一个不同的问题:我正在引用模板中另一个资源的子资源。我想那些被认为是在当前模板之外。
EG
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"name": "vnetName",
"location": "[resourceGroup().location]",
"apiVersion": "2018-11-01",
"properties": {
...
}
},
"resources": [
{
"type": "subnets",
"apiVersion": "2018-11-01",
"name": "subnetName",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', vnetName)]"
],
"properties": {
...
}
}
}
},
{
"apiVersion": "2016-02-01",
"name": "deploymentName",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks.subnets', vnetName, subnetName)]"
],
}
]
}
修复方法是将父资源放入部署中并依赖于此。
EG
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"resources": [
{
"apiVersion": "2016-02-01",
"name": "deployment1",
"type": "Microsoft.Resources/deployments",
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"name": "vnetName",
"location": "[resourceGroup().location]",
"apiVersion": "2018-11-01",
"properties": {
...
},
"resources": [
{
"type": "subnets",
"apiVersion": "2018-11-01",
"name": "subnetName",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', vnetName)]"
],
"properties": {
...
}
}
]
}
]
},
{
"apiVersion": "2016-02-01",
"name": "deployment2",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"deployment1"
],
}
]
}