Modello di Criteri di Azure: definizioni di criteri di gruppo

Un'iniziativa è un gruppo di definizioni di criteri. Raggruppando definizioni di criteri correlate in un singolo oggetto, è possibile creare una singola assegnazione invece di più di una.

Definizione di iniziativa di esempio

Questa iniziativa distribuisce due definizioni di criteri, ognuna delle quali accetta i parametri tagName e tagValue. L'iniziativa stessa include due parametri, costCenterValue e productNameValue. Ognuno di questi parametri dell'iniziativa viene fornito a ognuna delle definizioni di criteri raggruppate. Questo schema ottimizza il riutilizzo delle definizioni di criteri esistenti, limitando al tempo stesso il numero di assegnazioni create per implementarle come necessario.

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

Spiegazione

Parametri delle iniziative

Un'iniziativa può definire i propri parametri che vengono quindi passati alle definizioni di criteri raggruppate. In questo esempio, sia costCenterValue che productNameValue vengono definiti come parametri dell'iniziativa. I valori vengono forniti quando l'iniziativa viene assegnata.

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

Definizioni di criteri incluse

Ogni definizione di criteri inclusa deve fornire il parametro policyDefinitionId e una matrice di parametri se la definizione di criteri accetta parametri. Nel frammento di codice seguente la definizione di criteri inclusa accetta due parametri: tagName e tagValue. tagName viene definito con un valore letterale, ma tagValue usa il parametro costCenterValue definito dall'iniziativa. Il pass-through dei valori migliora il riutilizzo.

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

Passaggi successivi