Modello di Criteri di Azure: operatore value

L'operatore value valuta i parametri, le funzioni modello supportate o i valori letterali in base a un valore fornito per una determinata condizione.

Avviso

Se il risultato di una funzione modello è un errore, la valutazione dei criteri non riesce. Una valutazione non riuscita è un risultato deny implicito. Per altre informazioni, vedere come evitare errori dei modelli.

Definizione di criteri di esempio

Questa definizione di criteri aggiunge o sostituisce il tag specificato nel parametro tagName (stringa) nelle risorse ed eredita il valore per tagName dal gruppo di risorse in cui si trova la risorsa. Questa valutazione si verifica quando la risorsa viene creata o aggiornata. Come effetto modify, la correzione può essere eseguita su risorse esistenti tramite un'attività di correzione.

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

Spiegazione

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

L'operatore value viene usato all'interno del blocco policyRule.if all'interno di properties. In questo esempio viene usato l'operatore logico allOf per dichiarare che entrambe le istruzioni condizionali devono essere vere perché venga implementato l'effetto modify.

value valuta il risultato della funzione modello resourceGroup () in base alla condizione notEquals di un valore vuoto. Se il nome del tag fornito in tagName nel gruppo di risorse padre esiste, l'istruzione condizionale restituisce true.

Passaggi successivi