Model Azure Policy: operátor hodnoty

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

Upozorňující

Pokud je výsledkem funkce šablony chyba, vyhodnocení zásad selže. Neúspěšné vyhodnocení je implicitní odepření. Další informace najdete v tématu zabránění selhání šablony.

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 dědí hodnotu tagName ze skupiny prostředků, ve které je prostředek. K tomuto vyhodnocení dochází při vytvoření nebo aktualizaci prostředku. Jako účinek změny 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 policyRule.if bloku ve vlastnostech. V tomto příkladu se logický operátor allOf používá k vyjádření, že oba podmíněné příkazy musí být pravdivé pro účinek, upravit, aby proběhly.

hodnota vyhodnotí výsledek resourceGroup() funkce šablony 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