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


Определение членства в динамической группе сети в Диспетчере виртуальная сеть Azure с помощью Политика Azure

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

Политика Azure — это служба, которая позволяет применять управление ресурсами в масштабе. Его можно использовать для указания условных выражений, определяющих членство в группах, в отличие от явных списков виртуальных сетей. Это условие продолжает динамически работать с группами сети, позволяя виртуальным сетям присоединяться к группе и покидать группу автоматически в качестве выполнения изменений условий, при этом операция Network Manager не требуется.

Необходимые компоненты

Параметры и операторы

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

Список поддерживаемых параметров:

Параметры Поле расширенного редактора
Имя Name
ИД Id
Теги tag['tagName']
Имя подписки [subscription().Name]
ИД подписки [subscription().Id]
Теги подписки [subscription().tags['tagName']]
Имя группы ресурсов [resourceGroup().Name]
Идентификатор группы ресурсов [resourceGroup().Id]
Теги группы ресурсов [resourceGroup().tags['tagName']]

Список поддерживаемых операторов:

Операторы Расширенный редактор
Содержит "contains": <>
Не содержит "notcontains": <>
In "in": <>
Не в "notin": <>
Равно "equals": <>
Не равно "notequals": <>
Содержит любой из "contains": <>
Содержит все "contains": <>
Не содержит ни одного из "notcontains": <>
Exists "exists": true
Не существует "exists": false

Примечание.

Операторы "Существует " и "Не существует " используются только с параметром Tags .

Базовый редактор

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

Виртуальная сеть Имя тега Значение тега
myVNet01-EastUS environment рабочая среда
myVNet01-WestUS environment рабочая среда
myVNet02-WestUS environment test
myVNet03-WestUS environment test

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

  1. Перейдите к экземпляру Диспетчера виртуальная сеть Azure и выберите группы сети в разделе "Параметры". Затем нажмите кнопку +Создать , чтобы создать новую сетевую группу.

  2. Введите имя и необязательное описание для группы сети и нажмите кнопку "Добавить".

  3. Выберите группу сети из списка и выберите команду "Создать Политика Azure".

  4. Введите имя политики и оставьте выбранные области, если изменения не требуются.

  5. В разделе "Критерии" выберите теги из раскрывающегося списка " Параметр " и выберите пару "Значение ключа" в раскрывающемся списке " Оператор".

  6. Введите среду и рабочую среду в разделе "Условие" и выберите "Предварительный просмотр ресурсов". В списке должны отображаться myVNet01-EastUS и myVNet01-WestUS.

    Снимок экрана: создание тега параметра окна Политика Azure с парой

  7. Нажмите кнопку "Закрыть " и "Сохранить".

  8. Через несколько минут выберите группу сети и выберите "Участники группы" в разделе "Параметры". Вы должны видеть только myVNet01-WestUS и myVNet01-WestUS.

Внимание

Базовый редактор доступен только во время создания Политика Azure. После создания политики все изменения будут выполнены с помощью JSON в разделе "Политики" диспетчера виртуальных сетей или через Политика Azure.

Расширенный редактор

Расширенный редактор можно использовать для выбора виртуальных сетей во время создания сетевой группы или при обновлении существующей сетевой группы. В формате JSON расширенный редактор полезен для создания и обновления сложных Политика Azure условных инструкций опытными пользователями.

Создание новой политики с помощью расширенного редактора

  1. Перейдите к экземпляру Диспетчера виртуальная сеть Azure и выберите группы сети в разделе "Параметры". Затем нажмите кнопку +Создать , чтобы создать новую сетевую группу.

  2. Введите имя и необязательное описание для группы сети и нажмите кнопку "Добавить".

  3. Выберите группу сети из списка и выберите команду "Создать Политика Azure".

  4. Введите имя политики и оставьте выбранные области, если изменения не требуются.

  5. В разделе "Условия" выберите расширенный редактор (JSON), чтобы открыть редактор.

  6. Введите следующий код JSON в текстовое поле и нажмите кнопку "Сохранить".

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. Через несколько минут выберите группу сети и выберите "Участники группы" в разделе "Параметры". Вы должны видеть только myVNet01-WestUS и myVNet01-EastUS.

Внимание

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

Изменение существующей политики

  1. Выберите группу сети, созданную в предыдущем разделе. Затем перейдите на вкладку "Политики ".

  2. Выберите политику, созданную в предыдущем разделе.

  3. Условные операторы для группы сети отображаются в представлении предварительного редактора следующим образом:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. Чтобы добавить еще одну условную инструкцию для поля Name, не содержащего WestUS, введите следующее в расширенный редактор:

    {
       "allOf": [
    
          {
             "field": "Name",
             "contains": "VNet01"
          },
          {
             "field": "Name",
             "notcontains": "WestUS"
          }
       ]
    }
    

    Параметр "allOf" содержит как условные операторы, разделенные логическим оператором AND .

  5. Выберите Сохранить.

  6. Через несколько минут выберите группу сети и выберите "Участники группы" в разделе "Параметры". Вы должны видеть только myVNet01-EastUS.

Полный список параметров и операторов, которые можно использовать с расширенным редактором, см. в разделе "Параметры и операторы ".

Дополнительные примеры

Ниже приведены дополнительные примеры условных инструкций в расширенном редакторе.

Пример 1. Только оператор OR

В этом примере используется логический оператор OR для разделения двух условных операторов.

  • Базовый редактор:

    Снимок экрана: условный оператор группы сети с помощью логического оператора OR.

  • Расширенный оператор:

    {
       "anyOf": [
          {
             "field": "Name",
             "contains": "myVNet01"
          },
          {
             "field": "Name",
             "contains": "myVNet02"
          }
       ]
    }
    

Параметр "anyOf" содержит оба условных оператора, разделенные логическим оператором OR .

Пример 2. Оператор AND и OR одновременно

  • Базовый редактор:

    Снимок экрана: условный оператор группы сети с помощью оператора OR и логического оператора.

  • Расширенный редактор:

{
   "allOf": [
      {
         "anyOf": [
            {
               "field": "Name",
               "contains": "myVNet01"
            },
            {
               "field": "Name",
               "contains": "myVNet02"
            }
         ]
      },
      {
         "field": "Name",
         "notcontains": "West"
      }
   ]
}

Оба "allOf" и "anyOf" используются в коде. Так как оператор AND последний в списке, он находится во внешней части кода, содержащего две условные инструкции с оператором OR.

Пример 3. Использование настраиваемых значений тегов с расширенным редактором

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

  • Расширенный редактор:

    
       {
            "allOf": [
              {
                 "field": "Name",
                 "contains": "myVNet"
              },      
              {
                 "field": "tags['environment']",
                 "equals": "production"
              }
            ]    
       }
    
    

    Примечание.

    Условные условия должны фильтроваться по типу ресурса Microsoft.Network/virtualNetwork, чтобы повысить эффективность. Это условие предопределено для вас на любых условных условиях, указанных на портале.

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