Megosztás a következőn keresztül:


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. Az Azure Policy lehetővé teszi az új és meglévő erőforrások címkéinek nagy léptékű konfigurálását a módosítási effektussal és a 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.

Feljegyzés

Bár ez a szabályzatdefiníciós minta a Minta: Paraméterek – 1. minta esetében hasonló, ez a minta Az összes mó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ód Az összes értékre van állítva, mivel egy erőforráscsoportot céloz meg. A legtöbb esetben a módot indexeltre kell állítani a címkék használatakor. További információkért lásd a módokat.

"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 egyesíti a paraméteres tagName paramétert és a tags['name'] formátumot, hogy a mező kiértékelje a tagValue paraméter címkéjét. A notEquals használata esetén, ha a címkék[tagName] nem egyeznek a tagValue értékével, a módosítási effektus 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 a címkét a kiértékelt erőforráscsoport kívánt értékére hozza létre vagy frissítse.

2. minta: Címkeérték öröklése erőforráscsoportból

Ez a szabályzatdefiníció a tagName paraméter használatával határozza meg, hogy melyik címke értékét örökölje a szülő erőforráscsoporttó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 mintában a mód indexeltre 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ókért lásd a módokat.

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

A policyRule.if az concat 1. példához hasonlóan kiértékeli a tagName értékét, de a resourceGroup() függvény segítségével összehasonlítja azt a szülő erőforráscsoport ugyanazon címkéjének értékével. A második záradék ellenőrzi, hogy az erőforráscsoport címkéjének értéke 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 hozzá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 a szervizelési tevékenység frissítheti a meglévő erőforrásokat.

Következő lépések