Menerapkan tag dengan templat ARM
Artikel ini menjelaskan cara menggunakan templat Azure Resource Manager (templat ARM) untuk menandai sumber daya, grup sumber daya, dan langganan selama penyebaran. Untuk rekomendasi dan batasan tag, lihat Menggunakan tag untuk mengatur sumber daya Azure dan hierarki manajemen Anda.
Catatan
Tag yang Anda terapkan melalui templat ARM atau file Bicep menimpa tag yang ada.
Terapkan nilai
Contoh berikut menerapkan akun penyimpanan dengan tiga tag. Dua tag (Dept
dan Environment
) diatur ke nilai harfiah. Satu tag (LastDeployed
) diatur ke parameter yang default ke tanggal saat ini.
{
"$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": {}
}
]
}
Menerapkan objek
Anda dapat menentukan parameter objek yang menyimpan beberapa tag dan menerapkan objek tersebut ke elemen tag. Pendekatan ini memberikan fleksibilitas lebih dari contoh sebelumnya karena objek dapat memiliki properti yang berbeda. Setiap properti dalam objek menjadi tag terpisah untuk sumber daya. Contoh berikut memiliki parameter bernama tagValues
yang diterapkan ke elemen tag.
{
"$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": {}
}
]
}
Menerapkan untai (karakter) JSON
Untuk menyimpan banyak nilai dalam satu tag, terapkan untai (karakter) JSON yang mewakili nilai tersebut. Seluruh untai (karakter) JSON disimpan sebagai satu tag yang tidak dapat melebihi 256 karakter. Contoh berikut ini memiliki satu tag bernama CostCenter
yang berisi beberapa nilai dari untai (karakter) JSON:
{
"$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": {}
}
]
}
Menerapkan tag dari grup sumber daya
Untuk menerapkan tag dari grup sumber daya ke sumber daya, gunakan fungsi resourceGroup(). Saat mendapatkan nilai tag, gunakan sintaksis tags[tag-name]
dan bukan sintaksis tags.tag-name
, karena beberapa karakter tidak dipilah dengan benar dalam notasi titik.
{
"$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": {}
}
]
}
Menerapkan tag ke grup sumber daya atau langganan
Anda bisa menambahkan tag ke grup sumber daya atau langganan dengan menerapkan Microsoft.Resources/tags
jenis sumber daya tersebut. Anda dapat menerapkan tag ke grup sumber daya target atau langganan yang ingin Anda sebarkan. Setiap saat Anda menyebarkan templat, Anda mengganti tag sebelumnya.
{
"$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')]"
}
}
}
]
}
Untuk menerapkan tag ke grup sumber daya, gunakan Azure PowerShell atau Azure CLI. Terapkan ke grup sumber daya yang ingin Anda tag.
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
Untuk menerapkan tag ke langganan, gunakan PowerShell atau Azure CLI. Terapkan ke langganan yang ingin Anda tag.
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
Untuk informasi selengkapnya tentang penyebaran langganan, lihat Membuat grup sumber daya dan sumber daya di tingkat langganan.
Template berikut menambahkan tag dari objek ke grup sumber daya atau langganan.
{
"$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')]"
}
}
]
}
Langkah berikutnya
- Tidak semua jenis sumber daya mendukung tag. Untuk menentukan apakah Anda bisa menerapkan tag ke suatu jenis sumber daya, lihat Dukungan tag untuk sumber daya Azure.
- Untuk rekomendasi tentang cara menerapkan strategi penandaan, lihat Panduan keputusan penandaan dan penamaan sumber daya.
- Untuk rekomendasi dan batasan tag, lihat Menggunakan tag untuk mengatur sumber daya Azure dan hierarki manajemen Anda.