Azure Policy minta: címkék
A címkék fontos részét képezik az Azure-erőforrások kezelésének, rendszerezésének és szabályozásának. Azure Policy lehetővé teszi címkék nagy léptékű konfigurálását az új és meglévő erőforrásokon a módosítási és szervizelési feladatokkal.
1. minta: Címkék paraméterezése
Ez a szabályzatdefiníció két paramétert ( tagName és tagValue ) használ annak beállításához, hogy a szabályzat-hozzárendelés mit keres az erőforráscsoportokon. Ez a formátum lehetővé teszi, hogy a szabályzatdefiníció tetszőleges számú címkenévhez és címkeérték-kombinációhoz használható legyen, de csak egyetlen szabályzatdefiníciót tartson fenn.
Megjegyzés
Bár ez a szabályzatdefiníciós minta hasonló a Minta: Paraméterek – 1. minta elemhez, ez a minta az Összesmódot használja, és erőforráscsoportokat céloz meg.
{
"properties": {
"displayName": "Add or replace a tag on resource groups",
"mode": "All",
"description": "Adds or replaces the specified tag and value when any resource group is created or updated. Existing resource groups 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'"
}
},
"tagValue": {
"type": "String",
"metadata": {
"displayName": "Tag Value",
"description": "Value of the tag, such as 'production'"
}
}
},
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[parameters('tagValue')]"
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[parameters('tagValue')]"
}]
}
}
}
}
}
1. minta: Magyarázat
"properties": {
"displayName": "Add or replace a tag on resource groups",
"mode": "All",
"description": "Adds or replaces the specified tag and value when any resource group is created or updated. Existing resource groups can be remediated by triggering a remediation task.",
"metadata": {
"category": "Tags"
},
Ebben a mintában a móda Mind értékre van állítva, mivel egy erőforráscsoportot céloz meg. A legtöbb esetben a módotIndexelt értékre kell állítani a címkék használatakor. További információ: módok.
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[parameters('tagValue')]"
}
]
},
A szabályzatdefiníció concat
ezen részében a paraméteres tagName paramétert és a formátumot kombinálva adja meg a tags['name']
mező értékét a tagValue paraméter címkéjének kiértékeléséhez.
A notEquals használata esetén, ha a tags[tagName] nem egyenlő a tagValue értékkel, a módosítási hatás aktiválódik.
"operations": [{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[parameters('tagValue')]"
}]
Itt az addOrReplace művelet ugyanazt a formátumot használja a paraméteres címkeértékek használatához, hogy létrehozza vagy frissítse a címkét a kiértékelt erőforráscsoport kívánt értékére.
2. minta: Címkeérték öröklése erőforráscsoportból
Ez a szabályzatdefiníció a tagName paramétert használja annak meghatározására, hogy melyik címke értéke örökölhető a szülő erőforráscsoportból.
{
"properties": {
"displayName": "Inherit a tag from the resource group",
"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')]]"
}]
}
}
}
}
}
2. minta: Magyarázat
"properties": {
"displayName": "Inherit a tag from the resource group",
"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"
},
Ebben a példában a módIndexelt értékre van állítva, mivel nem egy erőforráscsoportot vagy előfizetést céloz meg, annak ellenére, hogy egy erőforráscsoportból szerzi be az értéket. További információ: módok.
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
A policyRule.if a concat
minta #1-hez hasonlóan kiértékeli a tagName értékét, de a resourceGroup()
függvény segítségével összehasonlítja a szülő erőforráscsoport ugyanazon címkéjének értékével. Az itt található második záradék ellenőrzi, hogy az erőforráscsoport címkéje rendelkezik-e értékkel, és nem null értékű-e.
"operations": [{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[resourceGroup().tags[parameters('tagName')]]"
}]
Itt az erőforrás tagName címkéjéhez rendelt érték a resourceGroup()
függvény használatával is lekéri az értéket a szülő erőforráscsoportból. Ily módon örökölheti a címkéket a szülő erőforráscsoportoktól. Ha már létrehozta az erőforrást, de nem adta hozzá a címkét, ugyanez a szabályzatdefiníció és egy szervizelési feladat frissítheti a meglévő erőforrásokat.
Következő lépések
- Tekintse át az egyéb mintákat és a beépített definíciókat.
- Tekintse meg az Azure szabályzatdefiníciók struktúrája szakaszt.
- A Szabályzatok hatásainak ismertetése.