可以开发非嵌套的azure arm防火墙规则吗?
这是为了找出我正在尝试的事情是否可能 我看到了几个开发入口ARM模板(可以开发非嵌套的azure arm防火墙规则吗?,azure,azure-resource-manager,Azure,Azure Resource Manager,这是为了找出我正在尝试的事情是否可能 我看到了几个开发入口ARM模板(azuredeploy.json)的示例,该模板引用/导入外部子资源模板(例如:azuredeploy.sql.server.json),其中定义了一个新的sql server,并且在sql server的资源部分中定义了嵌套资源,比如防火墙规则 我看到了一个示例(),其中条目/父ARM模板(例如:azuredeploy.json)定义SQL Server,并使用dependsOn来定义执行顺序,而不是将防火墙规则定义为嵌套资
azuredeploy.json
)的示例,该模板引用/导入外部子资源模板(例如:azuredeploy.sql.server.json
),其中定义了一个新的sql server,并且在sql server的资源部分中定义了嵌套资源,比如防火墙规则
我看到了一个示例(),其中条目/父ARM模板(例如:azuredeploy.json
)定义SQL Server,并使用dependsOn
来定义执行顺序,而不是将防火墙规则定义为嵌套资源,而是并行定义防火墙规则
这似乎比第一种方法更易于维护/嵌套更少
但是我想进一步介绍一下,上面的资源都是在外部模板中定义的:azuredeploy.json
调用azuredeploy.sql.server.json
和azuredeploy.sql.server.firewallRules.json
不幸的是,我还没有找到上述方法的一个例子
下午的大部分时间我都在尝试——但在将ID和名称的斜杠更改为所有可以想象的配置后,我一次又一次地运行到:
代码=无效模板
Message=部署模板验证失败:“模板资源{resource name}”
类型{resource type}的段长度不正确
因此,问题是:
a) 有什么理由不应该这样做吗?(我觉得它允许一组更模块化的arm模板,可以从平面输入arm文件中引用,只需要定义一组正确的“dependsOn”属性)
b) 以上这些真的可以做到吗?!
c) 是否有在线示例来研究上述方法并了解我的方法错误?
d) 以防万一:当它给出关于段长度的错误消息时……有没有可能它自己弄糊涂了,它考虑了“Microsoft.Resources/deployments”,而它应该只考虑“Microsoft.Sql/servers”和“Microsoft.Sql/servers/firewallRules”
如果有人能就这个关键点向我提出建议,我将不胜感激。是的,您应该能够做到这一点,请参阅:
您发布的错误表明您缺少名称段或类型段-它们必须匹配,如下例所示
"type": "Microsoft.Sql/servers/firewallrules",
"apiVersion": "2015-05-01-preview",
"name": "[concat(parameters('serverName'), '/', 'AllowAllWindowsAzureIps')]",
"location": "[resourceGroup().location]",
"properties": {
"endIpAddress": "0.0.0.0",
"startIpAddress": "0.0.0.0"
}
因此,您的名称属性将类似于
sqlServerResourceName/whateverYouWantToNameTheFirewallRules-并键入与上述示例完全相同的内容。谢谢。