wzorzec Azure Policy: definicje zasad grupy
Inicjatywa jest grupą definicji zasad. Grupując powiązane definicje zasad w pojedynczy obiekt, można utworzyć pojedyncze przypisanie, które byłoby wieloma przypisaniami.
Przykładowa definicja inicjatywy
Ta inicjatywa wdraża dwie definicje zasad, z których każda przyjmuje parametry tagName i tagValue . Sama inicjatywa ma dwa parametry: costCenterValue i productNameValue. Te parametry inicjatywy są udostępniane każdemu z pogrupowanych definicji zasad. Ten projekt maksymalizuje ponowne użycie istniejących definicji zasad przy jednoczesnym ograniczeniu liczby utworzonych przypisań w celu zaimplementowania ich w razie potrzeby.
{
"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')]"
}
}
}
]
}
}
Wyjaśnienie
Parametry inicjatywy
Inicjatywa może definiować własne parametry, które są następnie przekazywane do definicji zasad pogrupowanych. W tym przykładzie zarówno costCenterValue , jak i productNameValue są definiowane jako parametry inicjatywy. Wartości są udostępniane po przypisaniu inicjatywy.
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
Obejmuje definicje zasad
Każda dołączona definicja zasad musi podać policyDefinitionId i tablicę parametrów , jeśli definicja zasad akceptuje parametry. W poniższym fragmencie kodu dołączona definicja zasad przyjmuje dwa parametry: tagName i tagValue. tagName jest definiowany za pomocą literału, ale tagValue używa parametru costCenterValue zdefiniowanego przez inicjatywę. To przekazywanie wartości poprawia ponowne użycie.
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
Następne kroki
- Przejrzyj inne wzorce i wbudowane definicje.
- Przejrzyj temat Struktura definicji zasad Azure Policy.
- Przejrzyj wyjaśnienie działania zasad.