Udostępnij za pośrednictwem


Wzorzec usługi 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 zakończy się niepowodzeniem. Ocena nieudana jest niejawnym 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 obiekcie policyRule.if block wewnątrz właściwości. W tym przykładzie operator logiczny allOf służy do określania, że oba instrukcje warunkowe muszą być prawdziwe dla efektu, modyfikowania, aby miało miejsce.

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

Następne kroki