You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多资源组ARM模板中,如何让同组VNet依赖对应NSG?

让ARM模板中同资源组的VNet依赖对应NSG的解决方案

你需要在VNet的dependsOn数组中,通过resourceId函数生成同资源组下NSG的唯一资源ID,同时利用循环索引匹配对应的资源组,具体修改如下:

修正后的模板代码

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "listOfRGs": {
      "type": "array",
      "defaultValue": ["rg1", "rg2", "rgN"]
    }
  },
  "resources": [
    {
      "copy": [
        {
          "name": "rgNsgCopyIdx",
          "count": "[length(parameters('listOfRGs'))]",
          "input": {
            "type": "Microsoft.Network/networkSecurityGroups",
            "name": "myNSG",
            "resourceGroup": "[parameters('listOfRGs')[copyIndex('rgNsgCopyIdx')]]",
            "apiVersion": "2023-05-01",
            "location": "[resourceGroup(parameters('listOfRGs')[copyIndex('rgNsgCopyIdx')]).location]",
            "properties": {
              "securityRules": []
            }
          }
        },
        {
          "name": "rgVNetCopyIdx",
          "count": "[length(parameters('listOfRGs'))]",
          "input": {
            "type": "Microsoft.Network/virtualNetworks",
            "name": "myVNET",
            "resourceGroup": "[parameters('listOfRGs')[copyIndex('rgVNetCopyIdx')]]",
            "apiVersion": "2023-05-01",
            "location": "[resourceGroup(parameters('listOfRGs')[copyIndex('rgVNetCopyIdx')]).location]",
            "dependsOn": [
              "[resourceId(parameters('listOfRGs')[copyIndex('rgVNetCopyIdx')], 'Microsoft.Network/networkSecurityGroups', 'myNSG')]"
            ],
            "properties": {
              "addressSpace": {
                "addressPrefixes": ["10.0.0.0/16"]
              }
            }
          }
        }
      ]
    }
  ]
}

关键说明

  • 资源ID生成逻辑:resourceId函数的第一个参数指定目标资源组(通过当前VNet循环的索引copyIndex('rgVNetCopyIdx')匹配listOfRGs中的对应项),第二个参数是NSG的资源类型,第三个是NSG名称,这样就能精准指向同一资源组下的NSG。
  • 索引匹配:两个循环的count都是length(parameters('listOfRGs')),所以索引一一对应,确保每个VNet依赖的是同组的NSG,不会跨组关联。
  • 补充必要属性:模板中补充了apiVersion、location和基础资源属性,确保模板语法合法可执行。

内容的提问来源于stack exchange,提问作者Sten Petrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:40:59