资源未在模板中定义

问题描述 投票:6回答:3

在模板下面部署:

https://gist.github.com/rnkhouse/aea0a8fd395da37b19466348b919d620

错误:

“部署失败,状态码为:400,消息:部署模板验证失败:'资源'Microsoft.Network/virtualNetworks/mtes-dev-VNET'未在模板中定义。有关使用详情,请参阅https://aka.ms/arm-template。'。”

我已经在其他模板中创建了虚拟网络,并在此处使用相同的资源组。但是,我仍然犯了错误。请指教!

azure templates arm-template azure-template
3个回答
19
投票

在代码中删除dependsOn Vnet,只有当该资源是模板的一部分时才需要它,而不是在已经部署的情况下。


4
投票

对于此处搜索“资源未在模板中定义”的其他任何人,此错误消息的另一个可能原因是表单的引用:

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')

0
投票

我遇到了这个问题,搜索相同的错误代码。我有一个不同的问题:我正在引用模板中另一个资源的子资源。我想那些被认为是在当前模板之外。

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"
            ],
        }
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.