【发布时间】:2018-07-27 21:34:33
【问题描述】:
这是为了确定我正在尝试的事情是否可能......
我见过几个开发条目 ARM 模板 (azuredeploy.json) 的示例,该模板引用/导入外部子资源模板(例如:azuredeploy.sql.server.json),其中定义了新的 SQL Server 以及 -- 在sql server 的 resources 部分 -- 嵌套资源,例如防火墙规则。
我见过一个示例 (https://blogs.msdn.microsoft.com/azuresqldbsupport/2017/01/11/arm-template-to-deploy-server-with-auditing-and-threat-detection-turned-on/),其中条目/父 ARM 模板(例如:azuredeploy.json)定义了 SQL Server,而不是将防火墙规则定义为嵌套资源,而是在并行,使用dependsOn定义执行顺序。
这似乎比第一种方法更易于维护/嵌套更少。
但我想更进一步,上面的资源都是在外部模板中定义的:azuredeploy.json invoking azuredeploy.sql.server.json 和 azuredeploy.sql.server.firewallRules.json
很遗憾,我没有找到上述方法的一个示例。
我已经尝试了整个下午的大部分时间——但是将斜杠的 id 和名称更改为每个可以想象的配置,一遍又一遍地运行到:
代码=无效模板 消息=部署模板验证失败:'模板资源 {resource-name}' {resource-type} 类型的段长度不正确。
所以问题是: a) 有什么理由不应该这样做? (我觉得它允许一组更模块化的 arm 模板,可以从一个平面条目 arm 文件中引用,只需要定义一组正确的“dependsOn”属性) b)上面真的可以做到吗?! c)是否有在线示例来研究上述方法并了解我的方法错误? d) 以防万一:当它给出关于段长度的错误消息时......它可能会让自己感到困惑,并且它正在考虑“Microsoft.Resources/deployments”,而它应该只考虑“Microsoft.Resources/deployments”。 Sql/servers”和“Microsoft.Sql/servers/firewallRules”?
如果有人能在这个关键点上推动我,我们将不胜感激。
【问题讨论】:
标签: azure azure-resource-manager