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

能否在Azure Policy中迭代Modify Effect的Operations属性?

Azure Policy中迭代Modify Effect的operations属性实现批量标签添加

可以实现批量生成Modify Effect的operations操作,无需手动硬编码每个addOrReplace条目。通过Azure Policy的数组迭代(copy)表达式,就能基于parameters中的tags数组自动生成对应的标签操作。

实现步骤与示例

  1. 定义标签参数:在parameters中声明一个数组类型的参数,用于接收批量的标签键值对:
"parameters": {
  "tags": {
    "type": "array",
    "metadata": {
      "displayName": "批量标签",
      "description": "需要添加的标签列表,每个元素包含tagName和tagValue"
    },
    "defaultValue": [
      {
        "tagName": "Environment",
        "tagValue": "Production"
      },
      {
        "tagName": "CostCenter",
        "tagValue": "Finance"
      }
    ]
  }
}
  1. 迭代生成Modify操作:在policyRule的then部分,使用copy字段迭代tags数组,自动生成每个标签的addOrReplace操作:
"policyRule": {
  "if": {
    "field": "type",
    "equals": "Microsoft.Compute/virtualMachines"
  },
  "then": {
    "effect": "modify",
    "details": {
      "roleDefinitionIds": [
        "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
      ],
      "copy": [
        {
          "name": "operations",
          "count": "[length(parameters('tags'))]",
          "input": {
            "operation": "addOrReplace",
            "field": "[concat('tags[', parameters('tags')[copyIndex()].tagName, ']')]",
            "value": "[parameters('tags')[copyIndex()].tagValue]"
          }
        }
      ]
    }
  }
}

关键说明

  • copy字段的name需指定为operations,对应Modify Effect的操作列表
  • count用length(parameters('tags'))获取标签数组的长度,决定迭代次数
  • copyIndex()返回当前迭代的索引,用于从tags数组中取出对应的标签键和值
  • field通过concat动态拼接标签字段路径,确保每个操作对应正确的标签键

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:10:05