Share via


Modèle Azure Policy : Opérateur value

L’opérateur value évalue des paramètres, des fonctions de modèle prises en charge ou des littéraux par rapport à une valeur fournie pour une condition donnée.

Avertissement

Si le résultat d’une fonction de modèle est une erreur, la stratégie d’évaluation échoue. Une évaluation ayant échoué correspond à un refus implicite. Pour plus d’informations, consultez Éviter les défaillances des modèles.

Exemple de définition de stratégie

Cette définition de stratégie ajoute ou remplace l’étiquette spécifiée dans le paramètre tagName (string) sur des ressources, et hérite de la valeur de tagName à partir du groupe de ressources dans lequel se trouve la ressource. Cette évaluation se produit quand la ressource est créée ou mise à jour. En tant qu’effet modify, la correction peut être exécutée sur des ressources existantes par le biais d’une tâche de correction.

{
    "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')]]"
                    }]
                }
            }
        }
    }
}

Explication

"if": {
    "allOf": [{
            "field": "[concat('tags[', parameters('tagName'), ']')]",
            "notEquals": "[resourceGroup().tags[parameters('tagName')]]"
        },
        {
            "value": "[resourceGroup().tags[parameters('tagName')]]",
            "notEquals": ""
        }
    ]
},

L’opérateur value est utilisé dans le bloc policyRule.if dans properties. Dans cet exemple, l’opérateur logiqueallOf est utilisé pour indiquer que les deux instructions conditionnelles doivent avoir la valeur true pour que l’effet, modify, ait lieu.

value évalue le résultat de la fonction de modèle resourceGroup() à la condition notEquals d’une valeur vide. Si le nom d’étiquette fourni dans tagName sur le groupe de ressources parent existe, la condition est évaluée à true.

Étapes suivantes