Azure Policy 定义 append 效果

append 效果用于在创建或更新期间向请求的资源添加更多字段。 常见的示例是为存储资源指定允许的 Ip。

重要

append 用于非标记的属性。 尽管 append 可以在创建或更新请求期间将标记添加到资源,但建议使用 modify 效果取代标记。

“附加”评估

在创建或更新资源期间,append 效果会在资源提供程序处理请求之前进行评估。 当满足策略规则的 if 条件时,append 会向资源添加字段。 如果“附加”效果使用其他值替代原始请求中的值,则它会充当拒绝效果并拒绝该请求。 若要将新值附加到现有数组,请使用 [*] 版本的别名。

当使用附加效果的策略定义作为评估周期的一部分运行时,它不会更改已存在的资源。 相反,它会将符合 if 条件的任意资源标记为不符合。

“附加”属性

append 效果只有 details 数组,它是必需的。 因为 details 是一个数组,它可能需要单个或多个 field/value 对。 请参阅定义结构,获取可接受的字段列表。

“附加”示例

示例 1:使用非 [*] 别名的单个 field/value 对,具有用于在存储帐户上设置 IP 规则的 value 数组。 在非 [*] 别名是数组时,效果会将 value 追加为整个数组。 如果数组已存在,该冲突会导致 deny 事件发生。

"then": {
  "effect": "append",
  "details": [
    {
      "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules",
      "value": [
        {
          "action": "Allow",
          "value": "134.5.0.0/21"
        }
      ]
    }
  ]
}

示例 2:使用 [*] 别名的单个 field/value 对,具有用于在存储帐户上设置 IP 规则的 value 数组。 如果使用 [*] 别名,效果会将 value 追加到某个可能预先存在的数组。 如果不存在数组,则会创建数组。

"then": {
  "effect": "append",
  "details": [
    {
      "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]",
      "value": {
        "value": "40.40.40.40",
        "action": "Allow"
      }
    }
  ]
}

后续步骤