ARM şablonlarıyla etiket uygulama
Bu makalede dağıtım sırasında kaynakları, kaynak gruplarını ve abonelikleri etiketlemek için Azure Resource Manager şablonlarının (ARM şablonları) nasıl kullanılacağı açıklanmaktadır. Etiket önerileri ve sınırlamaları için bkz. Azure kaynaklarınızı ve yönetim hiyerarşinizi düzenlemek için etiketleri kullanma.
Not
ARM şablonu veya Bicep dosyası aracılığıyla uyguladığınız etiketler mevcut etiketlerin üzerine yazılır.
Değerleri uygulama
Aşağıdaki örnekte üç etiketli bir depolama hesabı dağıtılır. Etiketlerin ikisi (Dept
ve Environment
) değişmez değerlere ayarlanır. Bir etiket (LastDeployed
) varsayılan olarak geçerli tarihe ayarlanmış bir parametredir.
{
"$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": {}
}
]
}
Nesne uygulama
Birkaç etiketi depolayan bir nesne parametresi tanımlayabilir ve bu nesneyi etiket öğesine uygulayabilirsiniz. Nesnenin farklı özellikleri olabileceğinden bu yaklaşım önceki örnekten daha fazla esneklik sağlar. Nesnedeki her özellik, kaynak için ayrı bir etiket haline gelir. Aşağıdaki örnekte, etiket öğesine uygulanmış adlı tagValues
bir parametre vardır.
{
"$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 dizesi uygulama
Çok sayıda değeri tek bir etikete depolamak için, değerleri temsil eden bir JSON dizesi uygulayın. JSON dizesinin tamamı 256 karakteri aşamaz tek bir etiket olarak depolanır. Aşağıdaki örnekte bir JSON dizesindeki çok sayıda değeri içeren CostCenter
adlı tek bir etiket kullanılmaktadır:
{
"$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": {}
}
]
}
Kaynak grubundan etiket uygulama
Kaynak grubundan kaynağa etiket uygulamak için resourceGroup() işlevini kullanın. Etiket değerini aldığınızda, bazı karakterler nokta gösteriminde tags[tag-name]
doğru ayrıştırılmadığından söz dizimi yerine tags.tag-name
söz dizimini kullanın.
{
"$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": {}
}
]
}
Kaynak gruplarına veya aboneliklere etiket uygulama
Kaynak türünü dağıtarak Microsoft.Resources/tags
bir kaynak grubuna veya aboneliğe etiket ekleyebilirsiniz. Etiketleri dağıtmak istediğiniz hedef kaynak grubuna veya aboneliğe uygulayabilirsiniz. Şablonu her dağıttığınızda önceki etiketleri değiştirirsiniz.
{
"$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')]"
}
}
}
]
}
Etiketleri bir kaynak grubuna uygulamak için Azure PowerShell veya Azure CLI kullanın. Etiketlemek istediğiniz kaynak grubuna dağıtın.
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
Etiketleri aboneliğe uygulamak için PowerShell veya Azure CLI kullanın. Etiketlemek istediğiniz aboneliğe dağıtın.
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
Abonelik dağıtımları hakkında daha fazla bilgi için bkz. Abonelik düzeyinde kaynak grupları ve kaynaklar oluşturma.
Aşağıdaki şablon, bir nesnedeki etiketleri bir kaynak grubuna veya aboneliğe ekler.
{
"$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')]"
}
}
]
}
Sonraki adımlar
- Tüm kaynak türleri etiketleri desteklemez. Bir kaynak türüne etiket uygulayabileceğinizi belirlemek için bkz. Azure kaynakları için etiket desteği.
- Etiketleme stratejisi uygulama hakkında öneriler için bkz . Kaynak adlandırma ve etiketleme karar kılavuzu.
- Etiket önerileri ve sınırlamaları için bkz. Azure kaynaklarınızı ve yönetim hiyerarşinizi düzenlemek için etiketleri kullanma.