Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以开发非嵌套的azure arm防火墙规则吗?_Azure_Azure Resource Manager - Fatal编程技术网

可以开发非嵌套的azure 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来定义执行顺序,而不是将防火墙规则定义为嵌套资

这是为了找出我正在尝试的事情是否可能

我看到了几个开发入口ARM模板(
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-并键入与上述示例完全相同的内容。

谢谢。