Använda taggar med ARM-mallar
Den här artikeln beskriver hur du använder Azure Resource Manager-mallar (ARM-mallar) för att tagga resurser, resursgrupper och prenumerationer under distributionen. Taggrekommendationer och begränsningar finns i Använda taggar för att organisera dina Azure-resurser och hanteringshierarki.
Anteckning
De taggar som du tillämpar via en ARM-mall eller en Bicep-fil skriver över befintliga taggar.
Använda värden
I följande exempel distribueras ett lagringskonto med tre taggar. Två av taggarna (Dept
och Environment
) är inställda på literalvärden. En tagg (LastDeployed
) är inställd på en parameter som standardvärdet är det aktuella datumet.
{
"$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": {}
}
]
}
Använda ett objekt
Du kan definiera en objektparameter som lagrar flera taggar och tillämpa objektet på taggelementet. Den här metoden ger mer flexibilitet än i föregående exempel eftersom objektet kan ha olika egenskaper. Varje egenskap i objektet blir en separat tagg för resursen. I följande exempel finns en parameter med namnet tagValues
som tillämpas på taggelementet.
{
"$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": {}
}
]
}
Använda en JSON-sträng
Du kan lagra flera värden i en enskild tagg genom att använda en JSON-sträng som representerar värdena. Hela JSON-strängen lagras som en tagg som inte får överstiga 256 tecken. I följande exempel finns en enskild tagg med namnet CostCenter
som innehåller flera värden från en JSON-sträng:
{
"$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": {}
}
]
}
Använda taggar från resursgrupp
Om du vill tillämpa taggar från en resursgrupp på en resurs använder du funktionen resourceGroup(). När du hämtar taggvärdet använder du syntaxen tags[tag-name]
i stället för syntaxen tags.tag-name
, eftersom vissa tecken inte parsas korrekt i punktnotationen.
{
"$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": {}
}
]
}
Använda taggar för resursgrupper eller prenumerationer
Du kan lägga till taggar i en resursgrupp eller prenumeration genom att Microsoft.Resources/tags
distribuera resurstypen. Du kan tillämpa taggarna på den målresursgrupp eller prenumeration som du vill distribuera. Varje gång du distribuerar mallen ersätter du eventuella tidigare taggar.
{
"$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')]"
}
}
}
]
}
Om du vill tillämpa taggarna på en resursgrupp använder du antingen Azure PowerShell eller Azure CLI. Distribuera till den resursgrupp som du vill tagga.
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
Om du vill tillämpa taggarna på en prenumeration använder du antingen PowerShell eller Azure CLI. Distribuera till den prenumeration som du vill tagga.
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
Mer information om prenumerationsdistributioner finns i Skapa resursgrupper och resurser på prenumerationsnivå.
Följande mall lägger till taggarna från ett -objekt till antingen en resursgrupp eller prenumeration.
{
"$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')]"
}
}
]
}
Nästa steg
- Alla resurstyper har inte stöd för taggar. Information om hur du avgör om du kan använda en tagg för en resurstyp finns i Taggstöd för Azure-resurser.
- Rekommendationer om hur du implementerar en taggningsstrategi finns i beslutsguiden för namngivning och taggning av resurser.
- Taggrekommendationer och begränsningar finns i Använda taggar för att organisera dina Azure-resurser och hanteringshierarki.