Použití značek pomocí šablon ARM
Tento článek popisuje, jak používat šablony Azure Resource Manager (šablony ARM) k označování prostředků, skupin prostředků a předplatných během nasazování. Doporučení a omezení značek najdete v tématu Použití značek k uspořádání prostředků Azure a hierarchie správy.
Poznámka
Značky, které použijete prostřednictvím šablony ARM nebo souboru Bicep, přepíšou všechny existující značky.
Použití hodnot
Následující příklad nasadí účet úložiště se třemi značkami. Dvě značky (Dept
a Environment
) jsou nastavené na hodnoty literálů. Jedna značka (LastDeployed
) je nastavená na parametr, který má výchozí hodnotu aktuálního data.
{
"$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": {}
}
]
}
Použití objektu
Můžete definovat parametr objektu, který ukládá několik značek a použít tento objekt na prvek značky. Tento přístup poskytuje větší flexibilitu než předchozí příklad, protože objekt může mít různé vlastnosti. Každá vlastnost v objektu se stane samostatnou značkou pro prostředek. Následující příklad obsahuje parametr s názvem tagValues
, který se použije na element 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": {}
}
]
}
Použití řetězce JSON
Pokud chcete uložit mnoho hodnot v jedné značce, použijte řetězec JSON, který představuje hodnoty. Celý řetězec JSON je uložený jako jedna značka, která nesmí překročit 256 znaků. V následujícím příkladu je jedna značka CostCenter
, která obsahuje několik hodnot z řetězce 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": {}
}
]
}
Použití značek ze skupiny prostředků
Pokud chcete na prostředek použít značky ze skupiny prostředků, použijte funkci resourceGroup(). Když získáte hodnotu značky, místo syntaxe použijte tags[tag-name]
syntaxi tags.tag-name
, protože některé znaky nejsou v tečkované notaci správně analyzovány.
{
"$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": {}
}
]
}
Použití značek u skupin prostředků nebo předplatných
Značky můžete přidat do skupiny prostředků nebo předplatného nasazením Microsoft.Resources/tags
typu prostředku. Značky můžete použít u cílové skupiny prostředků nebo předplatného, které chcete nasadit. Pokaždé, když nasadíte šablonu, nahradíte všechny předchozí značky.
{
"$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')]"
}
}
}
]
}
Pokud chcete značky použít u skupiny prostředků, použijte buď Azure PowerShell, nebo Azure CLI. Nasazení do skupiny prostředků, kterou chcete označit.
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
Pokud chcete značky použít u předplatného, použijte Buď PowerShell, nebo Azure CLI. Nasazení do předplatného, které chcete označit.
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
Další informace o nasazeních předplatného najdete v tématu Vytváření skupin prostředků a prostředků na úrovni předplatného.
Následující šablona přidá značky z objektu do skupiny prostředků nebo předplatného.
{
"$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')]"
}
}
]
}
Další kroky
- Ne všechny typy prostředků podporují značky. Pokud chcete zjistit, jestli můžete použít značku na typ prostředku, projděte si téma Podpora značek pro prostředky Azure.
- Doporučení k implementaci strategie označování najdete v průvodci rozhodováním o pojmenování a označování prostředků.
- Doporučení a omezení značek najdete v tématu Použití značek k uspořádání prostředků Azure a hierarchie správy.