Share via


Azure Policy-patroon: de waarde-operator

De waarde-operator evalueert parameters, ondersteunde sjabloonfuncties, of letterlijke waarde voor een opgegeven waarde voor een bepaalde voorwaarde.

Waarschuwing

Als het resultaat van een sjabloonfunctie een fout is, mislukt de beleidsevaluatie. Een mislukte evaluatie is een impliciete weigering. Zie sjabloonfouten vermijden voor meer informatie.

Voorbeeld van beleidsdefinitie

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. Deze evaluatie gebeurt wanneer de resource wordt gemaakt of bijgewerkt. Als effect wijzigen kan het herstel worden uitgevoerd voor bestaande resources via een hersteltaak.

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

Uitleg

"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. 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.

waarde evalueert het resultaat van de sjabloonfunctie resourceGroup () voor de voorwaarde notEquals van een lege waarde. Als de labelnaam opgegeven in tagName voor de bovenliggende resourcegroep bestaat, dan wordt de voorwaarde als waar beschouwd.

Volgende stappen