Применение тегов с помощью Bicep
В этой статье описывается использование Bicep для добавления тегов к ресурсам, группам ресурсов и подпискам во время развертывания. Рекомендации и ограничения тегов см. в статье Использование тегов для упорядочения ресурсов Azure и иерархии управления.
Примечание
Теги, применяемые через файл Bicep, перезаписывают все существующие теги.
Применить значения
В следующем примере показано развертывание учетной записи хранения с тремя тегами. Двум тегам (Dept
и Environment
) присваиваются литеральные значения. Одному тегу (LastDeployed
) присваивается параметр, который по умолчанию приравнивается к текущей дате.
param location string = resourceGroup().location
param utcShort string = utcNow('d')
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
Dept: 'Finance'
Environment: 'Production'
LastDeployed: utcShort
}
}
Применить объект
Можно определить параметр объекта, который хранит несколько тегов, и применить этот объект к элементу тега. Такой подход дает больше гибкости, чем в предыдущем примере, поскольку объект может иметь различные свойства. Каждое свойство в объекте становится отдельным тегом ресурса. В следующем примере содержится параметр с именем tagValues
, который применяется к элементу тега.
param location string = resourceGroup().location
param tagValues object = {
Dept: 'Finance'
Environment: 'Production'
}
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: tagValues
}
Применить строку JSON
Для хранения большого количества значений в одном теге примените строку JSON, представляющую значения. Целая строка JSON сохраняется как один тег, длина которого не может превышать 256 символов. В следующем примере приведен один тег с именем CostCenter
, содержащий несколько значений из строки JSON.
param location string = resourceGroup().location
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
CostCenter: '{"Dept":"Finance","Environment":"Production"}'
}
}
Применить теги из группы ресурсов
Чтобы применить теги из группы ресурсов к ресурсу, используйте функцию resourceGroup(). При получении значения тега используйте синтаксис tags[tag-name]
вместо синтаксиса tags.tag-name
, поскольку некоторые символы некорректно анализируются в точечной нотации.
param location string = resourceGroup().location
resource stgAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
tags: {
Dept: resourceGroup().tags['Dept']
Environment: resourceGroup().tags['Environment']
}
}
Применить теги к группам ресурсов или подпискам
Можно добавить теги к группе ресурсов или подписке, развернув тип ресурса Microsoft.Resources/tags
. Теги можно применить к целевой группе ресурсов или подписке, которую требуется развернуть. При каждом развертывании шаблона заменяются все предыдущие теги.
param tagName string = 'TeamName'
param tagValue string = 'AppTeam1'
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: {
'${tagName}': tagValue
}
}
}
Следующий Bicep добавляет теги из объекта в подписку, в которую он развернут. Дополнительные сведения о развертываниях в подписках см. в статье Создание групп ресурсов и ресурсов на уровне подписки.
targetScope = 'subscription'
param tagObject object = {
TeamName: 'AppTeam1'
Dept: 'Finance'
Environment: 'Production'
}
resource applyTags 'Microsoft.Resources/tags@2021-04-01' = {
name: 'default'
properties: {
tags: tagObject
}
}
Дальнейшие действия
- Не все типы ресурсов поддерживают теги. Сведения о возможности применения тегов к типу ресурса см. в статье о поддержке тегов ресурсами Azure.
- Рекомендации по реализации стратегии присвоения тегов см. в разделе Руководство по принятию решений о присвоении имен и тегов для ресурсов.
- Рекомендации и ограничения тегов см. в статье Использование тегов для упорядочения ресурсов Azure и иерархии управления.