关联ARM模板传参失败,部署ResourceGroups报缺location属性错误
关联ARM模板部署location参数传递失败问题实录
核心报错
执行New-AzDeployment命令时持续触发以下错误:
New-AzDeployment: 20:29:04 - Error: Code=InvalidDeployment; Message=名为「ResourceGroups」的部署资源必须指定`location`属性,可参考订阅级部署的官方使用指南排查配置。
问题场景
测试带基础关联(Linked)逻辑的ARM模板时,始终无法正常向关联模板解析传递location参数。对照ARM关联模板的官方文档确认,当前配置逻辑按文档说明应当支持参数正常传递。
当前使用的部署文件清单:
azuredeploy.json:主/父模板文件azuredeploy.parameters.json:主模板关联参数文件resourceGroups.json:关联模板,内部配置了2个资源组的部署定义
各文件实际配置
主模板 azuredeploy.json
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "_artifactlocation": { "type": "string", "defaultValue": "https://someblob.blob.core.windows.net/armtemplates/" }, "_artifactsastoken": { "type": "securestring", "defaultValue": "somekey" }, "location": { "type": "string", "defaultValue": "ukwest" }, "tag_Owner": { "type": "string", "defaultValue": "abc" }, "network_RGName": { "type": "string", "defaultValue": "RG-UKW-TEST-NETWORK" }, "activtyDirectory_RGName": { "type": "string", "defaultValue": "RG-UKW-TEST-ACTIVEDIRECTORY" } }, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Resources/deployments", "apiVersion": "2019-10-01", "name": "ResourceGroups", "properties": { "mode": "Incremental", "templateLink": { "uri": "https://someblob.blob.core.windows.net/armtemplates/resourceGroups.json", "contentVersion": "1.0.0.0" }, "parameters": { "parameters": { "location": { "value": "[parameters('location')]" }, "network_RGName": { "value": "[parameters('network_RGName')]" }, "activtyDirectory_RGName": { "value": "[parameters('activtyDirectory_RGName')]" } } } } } ], "outputs": {} }
注:当前配置存在两处易踩坑的问题:一是向关联模板传参时多嵌套了一层parameters对象层级,导致关联模板接收不到参数;二是订阅级部署场景下,关联的deployment资源本身未指定自有location属性,正是触发本次报错的核心原因
主模板参数文件 azuredeploy.parameters.json
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "value": "ukwest" }, "network_RGName": { "value": "RG-UKW-TEST-NETWORK" }, "activtyDirectory_RGName": { "value": "RG-UKW-TEST-ACTIVEDIRECTORY" }, "tag_Owner": { "value": "abc" } } }
关联模板 resourceGroups.json
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string" }, "network_RGName": { "type": "string" }, "activtyDirectory_RGName": { "type": "string" }, "tag_Owner": { "type": "string" } }, "functions": [], "variables": {}, "resources": [ { "name": "[parameters('network_RGName')]", "type": "Microsoft.Resources/resourceGroups", "apiVersion": "2019-10-01", "location": "[parameters('location')]", "dependsOn": [], "tags": { "Owner": "[parameters('tag_Owner')]" } }, { "name": "[parameters('activtyDirectory_RGName')]", "type": "Microsoft.Resources/resourceGroups", "apiVersion": "2019-10-01", "location": "[parameters('location')]", "dependsOn": [], "tags": { "Owner": "[parameters('tag_Owner')]" } } ], "outputs": {} }
内容的提问来源于stack exchange,提问作者craig Rickett
相关产品推荐
相关产品推荐

