wzorzec Azure Policy: operator wartości

Operator wartości ocenia parametry, obsługiwane funkcje szablonu lub literały do podanej wartości dla danego warunku.

Ostrzeżenie

Jeśli wynikiem funkcji szablonu jest błąd, ocena zasad kończy się niepowodzeniem. Ocena nieudana jest niejawną odmową. Aby uzyskać więcej informacji, zobacz Unikanie błędów szablonów.

Przykładowa definicja zasad

Ta definicja zasad dodaje lub zastępuje tag określony w parametrze tagName (ciąg) zasobów i dziedziczy wartość tagName z grupy zasobów, w których znajduje się zasób. Ta ocena ma miejsce, gdy zasób zostanie utworzony lub zaktualizowany. W związku z modyfikacją korygowanie może być uruchamiane na istniejących zasobach za pomocą zadania korygowania.

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

Wyjaśnienie

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

Operator wartości jest używany w elemecie policyRule.if bloku we właściwościach. W tym przykładzie operator logicznyallOf służy do określania, że oba instrukcje warunkowe muszą być prawdziwe, aby efekt, zmodyfikować, aby miało miejsce.

wartość oblicza wynik funkcji szablonu resourceGroup() do warunku notEquals pustej wartości. Jeśli nazwa tagu podana w tagName w nadrzędnej grupie zasobów istnieje, warunkowa wartość zwraca wartość true.

Następne kroki