Azure Policy-patroon: de waarde-operatorAzure Policy pattern: the value operator

De waarde-operator evalueert parameters, ondersteunde sjabloonfuncties, of letterlijke waarde voor een opgegeven waarde voor een bepaalde voorwaarde.The value operator evaluates parameters, supported template functions, or literals to a provided value for a given condition.

Waarschuwing

Als het resultaat van een sjabloonfunctie een fout is, mislukt de beleidsevaluatie.If the result of a template function is an error, policy evaluation fails. Een mislukte evaluatie is een impliciete weigering.A failed evaluation is an implicit deny. Zie sjabloonfouten vermijden voor meer informatie.For more information, see avoiding template failures.

Voorbeeld van beleidsdefinitieSample policy definition

Met deze beleidsdefinitie wordt het label dat is opgegeven in de parameter tagName (string) op resources toegevoegd of vervangen en wordt de waarde voor tagName overgenomen van de resourcegroep waarin de resource zich bevindt.This policy definition adds or replaces the tag specified in the parameter tagName (string) on resources and inherits the value for tagName from the resource group the resource is in. Deze evaluatie gebeurt wanneer de resource wordt gemaakt of bijgewerkt.This evaluation happens when the resource is created or updated. Als effect wijzigen kan het herstel worden uitgevoerd voor bestaande resources via een hersteltaak.As a modify effect, the remediation may be run on existing resources through a remediation task.

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

UitlegExplanation

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

De operator waarde wordt gebruikt in het blok policyRule.if binnen eigenschappen.The value operator is used within the policyRule.if block within properties. In dit voorbeeld wordt de logische operator allOf gebruikt om te controleren of aan beide voorwaarden voldaan moet worden opdat het effect, wijzigen kan plaatsvinden.In this example, the logical operator allOf is used to state that both conditional statements must be true for the effect, modify, to take place.

waarde evalueert het resultaat van de sjabloonfunctie resourceGroup () voor de voorwaarde notEquals van een lege waarde.value evaluates the result of the template function resourceGroup() to the condition notEquals of a blank value. Als de labelnaam opgegeven in tagName voor de bovenliggende resourcegroep bestaat, dan wordt de voorwaarde als waar beschouwd.If the tag name provided in tagName on the parent resource group exists, the conditional evaluates to true.

Volgende stappenNext steps