使用Azure Resource Manager模板部署Azure Data Factory出现请求内容无效报错
请求内容无效且无法反序列化:“在类型为'Template'的对象上找不到成员'name',路径为'properties.template.name',位于第1行第34位”
报错根因
该错误由ARM模板结构不符合官方Schema规则触发:ARM模板的Template类型对象(即模板本身的结构定义)的顶层允许字段仅包含$schema、contentVersion、parameters、variables、resources、outputs、functions,不存在顶层name字段。你在properties.template对应的模板对象顶层额外添加了name字段,导致反序列化时无法识别该成员。
常见触发场景:
- 编写嵌套部署(
Microsoft.Resources/deployments类型资源)时,误将ADF资源的名称写到了properties.template的顶层,而非嵌套模板内部resources数组下ADF资源定义的name字段 - 直接部署ADF的单模板场景下,误将ADF名称写到了模板顶层,而非
resources数组下对应资源的name字段
排查解决步骤
- 定位到模板中
properties.template对应的代码块,删除其顶层的多余name字段 - 确认ADF的名称配置在正确位置,若为嵌套部署场景,参考以下结构修正:
错误写法示例:
{ "type": "Microsoft.Resources/deployments", "apiVersion": "2021-04-01", "name": "nestedDeployment", "properties": { "mode": "Incremental", "template": { "name": "testADF", // 错误:此处为Template对象顶层,不允许name字段 "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "type": "Microsoft.DataFactory/factories", "apiVersion": "2018-06-01", "location": "chinaeast2", "properties": {} } ] } } }
正确写法示例:
{ "type": "Microsoft.Resources/deployments", "apiVersion": "2021-04-01", "name": "nestedDeployment", "properties": { "mode": "Incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "type": "Microsoft.DataFactory/factories", "apiVersion": "2018-06-01", "name": "testADF", // 正确:name字段放到对应ADF资源的定义内 "location": "chinaeast2", "properties": {} } ] } } }
- 若为直接部署ADF的单模板场景,确保模板顶层无多余
name字段,ADF名称配置在resources下对应资源的name字段即可 - 修正完成后可通过
az deployment group validate命令本地校验模板合法性,确认无结构错误后再提交部署
内容的提问来源于stack exchange,提问作者Raju K
相关产品推荐
相关产品推荐

