使用 ARM 範本套用標籤
本文說明如何在部署期間,使用 Azure Resource Manager 範本 (ARM 範本),以標記資源、資源群組和訂用帳戶。 如需標籤建議及限制事項,請參閱使用標籤整理 Azure 資源和管理階層。
注意
您透過 ARM 範本或 Bicep 檔案套用的標記會覆寫任何現有的標記。
套用值
下列範例會部署一個具有三個標記的儲存體帳戶。 兩個標記 (Dept
和 Environment
) 會設定為常值。 一個標記 (LastDeployed
) 會設定為參數,其預設為目前日期。
{
"$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": {}
}
]
}
套用物件
您可以定義儲存數個標籤的物件參數,並將該物件套用至標籤元素。 這種方法比上一個範例提供更大的彈性,因為物件可有不同的屬性。 物件中的每個屬性會變成資源的個別標籤。 下列範例包含名為 tagValues
且套用至標籤元素的參數。
{
"$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 字串
若要將多個值儲存於單一標籤,請套用代表這些值的 JSON 字串。 整個 JSON 字串會儲存為一個不得超過 256 個字元的標記。 下列範例具有名為 CostCenter
的單一標籤,其中包含 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": {}
}
]
}
從資源群組套用標記
若要將標記從資源群組套用至資源,請使用 resourceGroup() 函數。 取得標籤值後,請使用 tags[tag-name]
語法,不要使用 tags.tag-name
語法,因為部分字元無法在點標記法中正確剖析。
{
"$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": {}
}
]
}
將標記套用至資源群組或訂用帳戶
您可以部署 Microsoft.Resources/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')]"
}
}
}
]
}
若要套用標籤至資源群組,請使用 Azure PowerShell 或 Azure CLI。 部署至您想要標記的資源群組。
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
若要將標記套用至訂用帳戶,請使用 PowerShell 或 Azure CLI。 部署至您想要標記的訂用帳戶。
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
如需訂用帳戶部署的詳細資訊,請參閱在訂用帳戶層級建立資源群組和資源。
下列範本會將標記從物件新增至資源群組或訂用帳戶。
{
"$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')]"
}
}
]
}
下一步
- 並非所有資源類型都支援標記。 若要判斷您是否可以將標籤套用至資源類型,請參閱 Azure 資源的標籤支援。
- 如需如何實作標記策略的建議,請參閱資源命名和標記決策指南。
- 如需標籤建議及限制事項,請參閱使用標籤整理 Azure 資源和管理階層。