Aracılığıyla paylaş


Azure İlkesi deseni: grup ilkesi tanımları

Girişim, ilke tanımları grubudur. İlgili ilke tanımlarını tek bir nesnede gruplandırarak, birden çok atama olacak tek bir atama oluşturabilirsiniz.

Örnek girişim tanımı

Bu girişim, her biri tagName ve tagValue parametrelerini alan iki ilke tanımı dağıtır. Girişimin kendisinde iki parametre vardır: costCenterValue ve productNameValue. Bu girişim parametrelerinin her biri gruplandırılmış ilke tanımlarının her birine sağlanır. Bu tasarım, mevcut ilke tanımlarının yeniden kullanılmasını en üst düzeye çıkarırken, gerektiğinde bunları uygulamak için oluşturulan atama sayısını sınırlar.

{
    "properties": {
        "displayName": "Billing Tags Policy Initiative",
        "description": "Specify cost Center tag and product name tag",
        "parameters": {
            "costCenterValue": {
                "type": "String",
                "metadata": {
                    "displayName": "required value for Cost Center tag"
                }
            },
            "productNameValue": {
                "type": "String",
                "metadata": {
                    "displayName": "required value for product Name tag"
                }
            }
        },
        "policyDefinitions": [{
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            }
        ]
    }
}

Açıklama

Girişim parametreleri

Girişim, daha sonra gruplandırılmış ilke tanımlarına geçirilen kendi parametrelerini tanımlayabilir. Bu örnekte, hem costCenterValue hem de productNameValue girişim parametreleri olarak tanımlanmıştır. Değerler, girişim atandığında sağlanır.

"parameters": {
    "costCenterValue": {
        "type": "String",
        "metadata": {
            "displayName": "required value for Cost Center tag"
        }
    },
    "productNameValue": {
        "type": "String",
        "metadata": {
            "displayName": "required value for product Name tag"
        }
    }
},

İlke tanımlarını içerir

dahil edilen her ilke tanımı, ilke tanımı parametreleri kabul ederse policyDefinitionId ve bir parametre dizisi sağlamalıdır. Aşağıdaki kod parçacığında, eklenen ilke tanımı iki parametre alır: tagName ve tagValue. tagName bir değişmez değerle tanımlanır, ancak tagValue , girişim tarafından tanımlanan costCenterValue parametresini kullanır. Bu değer geçişi, yeniden kullanımı iyileştirir.

{
    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
    "parameters": {
        "tagName": {
            "value": "costCenter"
        },
        "tagValue": {
            "value": "[parameters('costCenterValue')]"
        }
    }
},

Sonraki adımlar