Aracılığıyla paylaş


Azure İlkesi deseni: değer işleci

Değer işleci parametreleri, desteklenen şablon işlevlerini veya değişmez değerleri belirli bir koşul için sağlanan değer olarak değerlendirir.

Uyarı

Şablon işlevinin sonucu bir hataysa, ilke değerlendirmesi başarısız olur. Başarısız değerlendirme örtük bir reddetmedir. Daha fazla bilgi için bkz . Şablon hatalarını önleme.

Örnek ilke tanımı

Bu ilke tanımı, kaynaklardaki tagName (dize) parametresinde belirtilen etiketi ekler veya değiştirir ve tagName değerini kaynağın içinde olduğu kaynak grubundan devralır. Bu değerlendirme, kaynak oluşturulduğunda veya güncelleştirildiğinde gerçekleşir. Değişiklik etkisi olarak, düzeltme bir düzeltme görevi aracılığıyla mevcut kaynaklar üzerinde çalıştırılabilir.

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

Açıklama

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

Değer işleci, özellikler içinde engellenirse policyRule içinde kullanılır. Bu örnekte allOf mantıksal işleci, efektin gerçekleşmesi için her iki koşullu deyimin de true olması gerektiğini belirtmek için kullanılır.

değeri, resourceGroup() şablon işlevinin sonucunu boş bir değerin koşul notEquals değerine göre değerlendirir. Üst kaynak grubundaki tagName içinde sağlanan etiket adı varsa, koşullu değer true olarak değerlendirilir.

Sonraki adımlar