Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать шаблоны 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 и иерархии управления".