Tags toepassen met ARM-sjablonen
In dit artikel wordt beschreven hoe u Azure Resource Manager-sjablonen (ARM-sjablonen) gebruikt om resources, resourcegroepen en abonnementen te taggen tijdens de implementatie. Zie Tags gebruiken om uw Azure-resources en -beheerhiërarchie te organiseren voor aanbevelingen en beperkingen voor tags.
Notitie
De tags die u toepast via een ARM-sjabloon of Bicep-bestand overschrijven alle bestaande tags.
Waarden toepassen
In het volgende voorbeeld wordt een opslagaccount met drie tags geïmplementeerd. Twee van de tags (Dept
en Environment
) zijn ingesteld op letterlijke waarden. Eén tag (LastDeployed
) is ingesteld op een parameter die standaard de huidige datum heeft.
{
"$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": {}
}
]
}
Een object toepassen
U kunt een objectparameter definiëren waarin verschillende tags worden opgeslagen en dat object toepassen op het tag-element. Deze benadering biedt meer flexibiliteit dan in het vorige voorbeeld, omdat het object verschillende eigenschappen kan hebben. Elke eigenschap in het object wordt een afzonderlijke tag voor de resource. Het volgende voorbeeld bevat een parameter met de naam tagValues
die wordt toegepast op het tag-element.
{
"$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": {}
}
]
}
Een JSON-tekenreeks toepassen
Als u veel waarden wilt opslaan in een enkele tag, past u een JSON-tekenreeks toe die de waarden vertegenwoordigt. De hele JSON-tekenreeks wordt opgeslagen als één tag die niet langer mag zijn dan 256 tekens. Het volgende voorbeeld heeft een enkele tag met de naam CostCenter
die verschillende waarden uit een JSON-tekenreeks bevat:
{
"$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": {}
}
]
}
Tags toepassen vanuit resourcegroep
Als u tags van een resourcegroep wilt toepassen op een resource, gebruikt u de functie resourceGroup(). Wanneer u de tagwaarde krijgt, gebruikt u de tags[tag-name]
syntaxis in plaats van de tags.tag-name
syntaxis, omdat sommige tekens niet correct worden geparseerd in de puntnotatie.
{
"$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": {}
}
]
}
Tags toepassen op resourcegroepen of abonnementen
U kunt tags toevoegen aan een resourcegroep of abonnement door het Microsoft.Resources/tags
resourcetype te implementeren. U kunt de tags toepassen op de doelresourcegroep of het abonnement dat u wilt implementeren. Telkens wanneer u de sjabloon implementeert, vervangt u eventuele eerdere tags.
{
"$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')]"
}
}
}
]
}
Als u de tags wilt toepassen op een resourcegroep, gebruikt u Azure PowerShell of Azure CLI. Implementeer naar de resourcegroep die u wilt taggen.
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
Als u de tags wilt toepassen op een abonnement, gebruikt u PowerShell of Azure CLI. Implementeer naar het abonnement dat u wilt taggen.
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
Zie Resourcegroepen en resources maken op abonnementsniveau voor meer informatie over abonnementsimplementaties.
Met de volgende sjabloon worden de tags van een object toegevoegd aan een resourcegroep of abonnement.
{
"$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')]"
}
}
]
}
Volgende stappen
- Niet alle resourcetypen ondersteunen tags. Zie Tagondersteuning voor Azure-resources om te bepalen of u een tag kunt toepassen op een resourcetype.
- Zie Resource naming and tagging decision guide (Handleiding voor het nemen van namen en taggen van resources) voor aanbevelingen over het implementeren van een tagstrategie.
- Zie Tags gebruiken om uw Azure-resources en -beheerhiërarchie te organiseren voor aanbevelingen en beperkingen voor tags.