Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметры помогают упростить управление политиками за счет сокращения числа определений политик. Думайте о параметрах, таких как поля в форме: name
, address
, , city
state
. Эти параметры всегда остаются неизменными, но их значения изменяются на основе отдельного заполнения формы. Точно так же параметры работают при создании политик. Добавив параметры в определение политики, вы сможете повторно использовать ее в различных сценариях, указывая разные значения.
Добавление или удаление параметров
Параметры могут быть добавлены в существующее и назначенное определение. Новый параметр должен включать defaultValue
свойство. Это свойство предотвращает косвенную недействительность существующих назначений политики или инициативы.
Параметры не могут быть удалены из определения политики, так как может быть назначение, которое задает значение параметра, и эта ссылка будет нарушена. Некоторые встроенные определения политики помечают как устаревшие параметры с помощью метаданных "deprecated": true
, которые скрывают параметр при назначении определения в портале Azure. Хотя этот метод не поддерживается для определений настраиваемых политик, другой вариант — дублировать и создавать новое определение настраиваемой политики без параметра.
Свойства параметра
Параметр использует следующие свойства в определении политики:
-
name
: имя параметра. Используется функцией развертыванияparameters
в правиле политики. Дополнительные сведения см. в разделе об использовании значения параметра. -
type
: определяет, является ли параметрstring
,array
,object
,boolean
,integer
,float
илиdateTime
. -
metadata
: Определяет вложенные свойства, которые в основном используются порталом Azure для отображения удобной для пользователя информации.-
description
: объяснение того, для чего используется параметр. Можно использовать для примеров допустимых значений. -
displayName
: дружелюбное имя, отображаемое на портале для параметра. -
strongType
: (Необязательно) Используется при назначении определения политики через портал. Предоставляет список с учетом контекста. См. дополнительные сведения в strongType. -
assignPermissions
: (Необязательно) Установите значение true, чтобы портал Azure создавал назначения ролей во время назначения политики. Это свойство полезно, если вы хотите назначить разрешения за пределами области назначения. Существует одно назначение ролей для определения роли в политике (или определение роли во всех политиках инициативы). Значение параметра должно быть допустимым ресурсом или областью. -
deprecated
: логический флаг, указывающий, является ли параметр устаревшим в встроенном определении.
-
-
defaultValue
: (необязательно) задает значение параметра в назначении, если значение не задано. Это свойство необходимо при обновлении существующего назначенного определения политики. Для параметров типа объекта значение должно соответствовать соответствующей схеме. -
allowedValues
: (необязательно) Предоставляет массив значений, которые параметр принимает во время назначения.- Чувствительность к регистру: Допустимые сравнения значений чувствительны к регистру при назначении политики, что означает, что выбранные значения параметров в назначении должны соответствовать регистру значений в массиве
allowedValues
определения. Однако после выбора значений для назначения оценка сравнений строк может быть нечувствительной к регистру в зависимости от используемого условия . Например, если параметр указываетDev
в качестве допустимого значения тега в назначении, и это значение сравнивается с входной строкой с помощьюequals
условия, то Политика Azure позже будет оценивать значение тегаdev
как совпадение, даже если оно в строчных буквах, посколькуnotEquals
нечувствителен к регистру. - Для параметров типа объекта значения должны соответствовать соответствующей схеме.
- Чувствительность к регистру: Допустимые сравнения значений чувствительны к регистру при назначении политики, что означает, что выбранные значения параметров в назначении должны соответствовать регистру значений в массиве
-
schema
: (необязательно) обеспечивает проверку входных данных параметров во время назначения с использованием самоопределяющейся схемы JSON. Это свойство поддерживается только для параметров объектного типа и соответствует реализации Json.NET Schema 2019-09. Вы можете просмотреть дополнительные сведения об использовании схем на сайте https://json-schema.org/ и протестировать черновые версии схем на сайте https://www.jsonschemavalidator.net/.
Примеры параметров
Пример 1
Например, можно создать определение политики, чтобы ограничить расположения, в которых могут развертываться ресурсы. Параметр для этого определения политики может быть allowedLocations
и использоваться каждым назначением определения политики для ограничения принимаемых значений. Использование strongType
обеспечивает улучшенный опыт при выполнении задания на портале:
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [
"westus2"
],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Пример входных данных для этого параметра типа массива (без strongType
) во время назначения может быть ["westus", "eastus2"]
.
Пример 2
В более сложном сценарии можно определить политику, которая требует, чтобы модули pod кластера Kubernetes использовали указанные метки. Параметр для этой политики labelSelector
можно использовать в каждом случае назначения определения политики, чтобы указать соответствующие ресурсы Kubernetes на основе ключей и значений меток.
"parameters": {
"labelSelector": {
"type": "Object",
"metadata": {
"displayName": "Kubernetes label selector",
"description": "Label query to select Kubernetes resources for policy evaluation. An empty label selector matches all Kubernetes resources."
},
"defaultValue": {},
"schema": {
"description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all resources.",
"type": "object",
"properties": {
"matchLabels": {
"description": "matchLabels is a map of {key,value} pairs.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"minProperties": 1
},
"matchExpressions": {
"description": "matchExpressions is a list of values, a key, and an operator.",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"description": "key is the label key that the selector applies to.",
"type": "string"
},
"operator": {
"description": "operator represents a key's relationship to a set of values.",
"type": "string",
"enum": [
"In",
"NotIn",
"Exists",
"DoesNotExist"
]
},
"values": {
"description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"key",
"operator"
],
"additionalProperties": false
},
"minItems": 1
}
},
"additionalProperties": false
}
},
}
Пример входных данных для этого параметра объектного типа при назначении будет представлен в формате JSON, который проверяется указанной схемой, и может иметь следующий вид:
{
"matchLabels": {
"poolID": "abc123",
"nodeGroup": "Group1",
"region": "southcentralus"
},
"matchExpressions": [
{
"key": "name",
"operator": "In",
"values": [
"payroll",
"web"
]
},
{
"key": "environment",
"operator": "NotIn",
"values": [
"dev"
]
}
]
}
Использование значения параметра
В правиле политики вы ссылаетесь на параметры с использованием следующего синтаксиса функции parameters
.
{
"field": "location",
"in": "[parameters('allowedLocations')]"
}
Этот пример ссылается на allowedLocations
параметр, который был показан в свойствах параметров.
strongType
В свойстве metadata
можно использовать strongType
для предоставления многократного выбора списка опций в портале Azure.
strongType
может быть поддерживаемым типом ресурса или допустимым значением. Чтобы определить, является ли тип ресурса допустимым для strongType
, используйте Get-AzResourceProvider. Формат для типа ресурсаstrongType
— <Resource Provider>/<Resource Type>
. Например, Microsoft.Network/virtualNetworks/subnets
.
Некоторые типы ресурсов, не возвращаемые Get-AzResourceProvider
, поддерживаются. Эти типы перечислены ниже.
Microsoft.RecoveryServices/vaults/backupPolicies
Допустимые значения, не относящиеся к типу ресурса, для strongType
:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Следующие шаги
- Дополнительные сведения о структуре определения политики см. в основах, правиле политики и псевдониме.
- Для инициатив перейдите к структуре определения инициативы.
- Изучите примеры на странице примеров Политики Azure.
- Изучите сведения о действии политик.
- Узнайте о программном создании политик.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.
- Дополнительные сведения о группе управления см. в статье Упорядочивание ресурсов с помощью групп управления Azure.