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

Azure Policy ARM模板使用名称通配符排除指定前缀资源组的方法

Azure Policy 按名称前缀排除资源组实现方案

Azure Policy 本身不支持在分配的notScopes配置项中直接使用通配符,你可以通过以下两种方案实现所有以Atlanta开头的资源组排除需求:

方案1:Policy规则层面添加前缀匹配(推荐,适合自定义Policy场景)

可以直接通过Policy内置的notStartsWith字符串函数实现前缀过滤,无需依赖固定数组配置:

  • 如果你可以修改Policy定义,直接在规则的if逻辑块中添加排除条件即可,示例规则片段如下:
{
  "if": {
    "allOf": [
      // 此处保留你原本的Policy匹配逻辑
      {
        "field": "type",
        "equals": "Microsoft.Resources/subscriptions/resourceGroups"
      },
      {
        "field": "name",
        "notStartsWith": "Atlanta"
      }
    ]
  },
  "then": {
    "effect": "[parameters('effect')]"
  }
}
  • 如果需要多场景复用Policy,可以把前缀定义为Policy参数,分配时再传值即可:
    1. 首先在Policy定义的parameters块新增前缀参数:
    "parameters": {
      "excludedRgPrefix": {
        "type": "String",
        "metadata": {
          "displayName": "排除的资源组名称前缀",
          "description": "名称此前缀开头的资源组将不适用当前Policy"
        }
      }
    }
    
    1. 规则中引用参数:
    {
      "field": "name",
      "notStartsWith": "[parameters('excludedRgPrefix')]"
    }
    
    1. 分配Policy时给参数传值Atlanta即可生效。

方案2:分配层面批量排除(适合无法修改规则的内置Policy场景)

如果用的是官方内置Policy不能修改规则,可以通过Resource Graph批量查询符合前缀的资源组,再批量加入分配的排除范围:

  1. 运行以下Resource Graph Kusto查询获取所有Atlanta开头的资源组ID:
ResourceContainers
| where type == 'microsoft.resources/subscriptions/resourcegroups'
| where name starts with 'Atlanta'
| project id
  1. 将查询返回的所有资源组ID批量填入Policy分配的排除范围(Not Scopes)配置项即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:09:01