Azure Policy vzor: operátor hodnoty

Operátor hodnoty vyhodnotí parametry, podporované funkce šablony nebo literály na zadanou hodnotu pro danou podmínku.

Upozornění

Pokud je výsledkem funkce šablony chyba, vyhodnocení zásad se nezdaří. Neúspěšné vyhodnocení je implicitní zamítnutí. Další informace najdete v tématu zabránění selhání šablon.

Ukázková definice zásady

Tato definice zásady přidá nebo nahradí značku zadanou v parametru tagName (řetězec) u prostředků a zdědí hodnotu tagName ze skupiny prostředků, ve které se prostředek nachází. K tomuto vyhodnocení dojde při vytvoření nebo aktualizaci prostředku. Jako účinek úpravy může být náprava spuštěna u existujících prostředků prostřednictvím úlohy nápravy.

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

Vysvětlení

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

Operátor hodnoty se používá v rámci bloku policyRule.if v rámci vlastností. V tomto příkladu se logický operátorallOf používá ke stanovení, že oba podmíněné příkazy musí být pravdivé, aby se účinek , změna, aby se proběhla.

value vyhodnotí výsledek šablony funkce resourceGroup() na podmínku notEquals prázdné hodnoty. Pokud název značky zadaný v tagName nadřazené skupině prostředků existuje, podmínka se vyhodnotí jako true.

Další kroky