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

Azure订阅策略规则修正求助:调整VMSS扩展合规逻辑

Azure订阅策略修正:满足VMSS扩展要求的正确配置

你的需求是让Virtual Machine Scale Sets(VMSS)满足以下任一条件:

  • 至少包含一个类型为X的扩展
  • 同时包含类型为A和B的扩展

原代码的核心问题在于第二个条件仅检查扩展类型包含A或B中的任意一个,而非同时包含两者,无法满足你的要求。

以下是修正后的策略代码:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Compute/virtualMachineScaleSets"
      },
      {
        "not": {
          "anyOf": [
            // 条件1:至少存在一个类型为X的扩展
            {
              "field": "Microsoft.Compute/virtualMachineScaleSets/virtualMachineProfile.extensionProfile.extensions[*].type",
              "in": ["X"]
            },
            // 条件2:同时存在类型A和类型B的扩展
            {
              "allOf": [
                {
                  "field": "Microsoft.Compute/virtualMachineScaleSets/virtualMachineProfile.extensionProfile.extensions[*].type",
                  "in": ["A"]
                },
                {
                  "field": "Microsoft.Compute/virtualMachineScaleSets/virtualMachineProfile.extensionProfile.extensions[*].type",
                  "in": ["B"]
                }
              ]
            }
          ]
        }
      }
    ]
  },
  "then": {
    "effect": "deny"
  },
  "versions": ["1.0.0"]
}

代码说明:

  • 外层allOf确保规则仅对VMSS类型资源生效
  • not+anyOf的组合逻辑:只要VMSS不满足两个允许条件中的任意一个,就触发拒绝操作
  • 第一个允许条件:通过extensions[*].type in ["X"]确保VMSS中至少存在一个X类型扩展
  • 第二个允许条件:通过allOf嵌套两个in检查,强制要求VMSS同时包含A和B类型的扩展

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:28:20