Patrón de Azure Policy: operador value
El operador value evalúa parámetros, funciones de plantilla admitidas o literales con un valor proporcionado para una condición determinada.
Advertencia
Si el resultado de una función de plantilla es un error, no se pude realizar la evaluación de directivas. Una evaluación con errores es una denegación implícita. Para más información, consulte cómo evitar los errores de plantilla.
Definición de directiva de ejemplo
Esta definición de directiva agrega o reemplaza la etiqueta especificada en el parámetro tagName (cadena) en los recursos y hereda el valor de tagName del grupo de recursos en el que se encuentra el recurso. Esta evaluación se produce cuando se crea o actualiza el recurso. Como un efecto modify, la corrección se puede ejecutar en los recursos existentes mediante una tarea de corrección.
{
"properties": {
"displayName": "Inherit a tag from the resource group",
"policyType": "BuiltIn",
"mode": "Indexed",
"description": "Adds or replaces the specified tag and value from the parent resource group when any resource is created or updated. Existing resources can be remediated by triggering a remediation task.",
"metadata": {
"category": "Tags"
},
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'environment'"
}
}
},
"policyRule": {
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[resourceGroup().tags[parameters('tagName')]]"
}]
}
}
}
}
}
Explicación
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
El operador value se usa dentro del bloque policyRule.if dentro de properties. En este ejemplo, el operador lógico allOf se usa para comprobar que sean verdaderas ambas instrucciones condicionales para que el efecto modify tenga lugar.
value evalúa el resultado de la función de plantilla resourceGroup() con la condición notEquals de un valor en blanco. Si el nombre de etiqueta proporcionado en tagName existe en el grupo de recursos primario, la instrucción condicional se evalúa en verdadero.
Pasos siguientes
- Consulte otros patrones y definiciones integradas.
- Revise la estructura de definición de Azure Policy.
- Vea la Descripción de los efectos de directivas.