Поделиться через


Определения политики Azure: эффект добавления

Эффект append используется для добавления дополнительных полей в запрошенный ресурс во время создания или обновления. Типичный пример — указание разрешенных IP-адресов для ресурса хранилища.

Внимание

append предназначен для использования со свойствами, не относящихся к тегам. Хотя теги могут добавляться в ресурс во время append запроса на создание или обновление, рекомендуется использовать эффект изменения для тегов.

Оценка добавления

Эффект append оценивается до обработки запроса поставщиком ресурсов во время создания или обновления ресурса. Поля добавляются к ресурсу при if выполнении условия правила политики. Если добавление приведет к замене значения в исходном запросе на другое значение, то оно работает как действие запрета и отклоняет запрос. Чтобы добавить новое значение к имеющемуся массиву, используйте версию псевдонима [*].

При запуске определения политики с использованием действия добавления в рамках цикла оценивания оно не меняет уже существующие ресурсы. Вместо этого он помечает любой ресурс, соответствующий условию if , как несоответствующий.

Добавление свойств

Эффект добавления может содержать только массив details, который является обязательным. Так как details это массив, он может принимать одну field/value пару или несколько. Список допустимых полей представлен в статье, посвященной структуре определения.

Добавить примеры

Пример 1. Одна field/value пара, использующая не-[*]псевдоним с массивом value для задания правил IP в учетной записи хранения. [*] Если псевдоним не является массивом, эффект добавляет value его в виде всего массива. Если массив уже существует, событие deny возникает вследствие конфликта.

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

Пример 2. Одна field/value пара, использующая псевдоним [*] с массивом value для настройки IP правил в учетной записи хранения. При использовании псевдонима [*] эффект добавляет value к возможному существующему массиву. Создаются массивы, которые не существуют.

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

Следующие шаги