Címkék alkalmazása ARM-sablonokkal

Ez a cikk azt ismerteti, hogyan címkézhet meg erőforrásokat, erőforráscsoportokat és előfizetéseket az üzembe helyezés során az Azure Resource Manager-sablonok (ARM-sablonok) használatával. A címkékre vonatkozó javaslatokért és korlátozásokért lásd: Címkék használata az Azure-erőforrások és a felügyeleti hierarchia rendszerezéséhez.

Megjegyzés

Az ARM-sablonon vagy Bicep-fájlon keresztül alkalmazott címkék felülírják a meglévő címkéket.

Értékek alkalmazása

Az alábbi példa egy három címkével rendelkező tárfiókot helyez üzembe. A címkék közül kettő (Dept és Environment) literális értékekre van állítva. Az egyik címke (LastDeployed) egy olyan paraméterre van beállítva, amely alapértelmezés szerint az aktuális dátumra van beállítva.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "utcShort": {
      "type": "string",
      "defaultValue": "[utcNow('d')]"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": {
        "Dept": "Finance",
        "Environment": "Production",
        "LastDeployed": "[parameters('utcShort')]"
      },
      "properties": {}
    }
  ]
}

Objektum alkalmazása

Definiálhat egy objektumparamétert, amely több címkét tárol, és alkalmazza az objektumot a címkeelemre. Ez a megközelítés nagyobb rugalmasságot biztosít, mint az előző példa, mivel az objektum különböző tulajdonságokkal rendelkezhet. Az objektum minden tulajdonsága az erőforrás külön címkéjévé válik. Az alábbi példában egy nevű tagValues paraméter van alkalmazva a címkeelemre.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "tagValues": {
      "type": "object",
      "defaultValue": {
        "Dept": "Finance",
        "Environment": "Production"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": "[parameters('tagValues')]",
      "properties": {}
    }
  ]
}

JSON-sztring alkalmazása

Ha több értéket szeretne tárolni egyetlen címkében, alkalmazzon a megfelelő értékeket képviselő JSON-sztringet. A teljes JSON-sztring egyetlen címkeként van tárolva, amely nem haladhatja meg a 256 karaktert. Az alábbi példában egy CostCenter nevű címke szerepel, amely egy JSON-sztring számos értékét tartalmazza:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": {
        "CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
      },
      "properties": {}
    }
  ]
}

Címkék alkalmazása erőforráscsoportból

Ha egy erőforráscsoportból címkéket szeretne alkalmazni egy erőforrásra, használja a resourceGroup() függvényt. A címkeérték lekérésekor a szintaxis helyett használja a tags[tag-name]tags.tag-name szintaxist, mert egyes karakterek nem megfelelően vannak elemezve a pont jelölésében.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": {
        "Dept": "[resourceGroup().tags['Dept']]",
        "Environment": "[resourceGroup().tags['Environment']]"
      },
      "properties": {}
    }
  ]
}

Címkék alkalmazása erőforráscsoportokra vagy előfizetésekre

Az erőforrástípus üzembe helyezésével címkéket adhat hozzá egy Microsoft.Resources/tags erőforráscsoporthoz vagy előfizetéshez. A címkéket alkalmazhatja az üzembe helyezni kívánt cél erőforráscsoportra vagy előfizetésre. Minden alkalommal, amikor üzembe helyezi a sablont, lecseréli az előző címkéket.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "tagName": {
      "type": "string",
      "defaultValue": "TeamName"
    },
    "tagValue": {
      "type": "string",
      "defaultValue": "AppTeam1"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/tags",
      "name": "default",
      "apiVersion": "2021-04-01",
      "properties": {
        "tags": {
          "[parameters('tagName')]": "[parameters('tagValue')]"
        }
      }
    }
  ]
}

Ha a címkéket egy erőforráscsoportra szeretné alkalmazni, használja a Azure PowerShell vagy az Azure CLI-t. Helyezze üzembe a címkézni kívánt erőforráscsoportot.

New-AzResourceGroupDeployment -ResourceGroupName exampleGroup -TemplateFile https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment group create --resource-group exampleGroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json

Ha a címkéket egy előfizetésre szeretné alkalmazni, használja a PowerShellt vagy az Azure CLI-t. Helyezze üzembe a címkézni kívánt előfizetést.

New-AzSubscriptionDeployment -name tagresourcegroup -Location westus2 -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json
az deployment sub create --name tagresourcegroup --location westus2 --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/tags.json

Az előfizetések üzembe helyezésével kapcsolatos további információkért lásd: Erőforráscsoportok és erőforrások létrehozása előfizetési szinten.

Az alábbi sablon hozzáadja egy objektum címkéit egy erőforráscsoporthoz vagy előfizetéshez.

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "tags": {
      "type": "object",
      "defaultValue": {
        "TeamName": "AppTeam1",
        "Dept": "Finance",
        "Environment": "Production"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/tags",
      "apiVersion": "2021-04-01",
      "name": "default",
      "properties": {
        "tags": "[parameters('tags')]"
      }
    }
  ]
}

Következő lépések