Применение тегов с помощью Azure PowerShell
В этой статье описывается использование Azure PowerShell для добавления тегов к ресурсам, группам ресурсов и подпискам. Рекомендации и ограничения тегов см. в статье Использование тегов для упорядочения ресурсов Azure и иерархии управления.
Применить теги
Azure PowerShell предлагает две команды для применения тегов: New-AzTag и Update-AzTag. Требуется модуль Az.Resources
версии 1.12.0 или выше. Проверить версию можно с помощью Get-InstalledModule -Name Az.Resources
. Можно установить этот модуль или установить Azure PowerShell версии 3.6.1 или выше.
Команда New-AzTag
заменяет все теги в ресурсе, группе ресурсов или подписке. При вызове команды укажите идентификатор ресурса той сущности, которой нужно присвоить тег.
В следующем примере набор тегов присваивается учетной записи хранения.
$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags
Обратите внимание на то, что после выполнения команды ресурс имеет два тега.
Properties :
Name Value
====== =======
Dept Finance
Status Normal
Если выполнить команду еще раз, но с другими тегами, предыдущие теги исчезнут.
$tags = @{"Team"="Compliance"; "Environment"="Production"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags
Properties :
Name Value
=========== ==========
Environment Production
Team Compliance
Для добавления тегов к ресурсу, уже имеющему теги, следует использовать Update-AzTag
. Установите для параметра -Operation
значение Merge
.
$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge
Обратите внимание, что существующие теги увеличиваются с добавлением двух новых тегов.
Properties :
Name Value
=========== ==========
Status Normal
Dept Finance
Team Compliance
Environment Production
Каждое имя тега может иметь только одно значение. Если указать новое значение для тега, оно заменит старое, даже если использовать операцию слияния. В следующем примере тег Status
изменяется с Normal на Green.
$tags = @{"Status"="Green"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge
Properties :
Name Value
=========== ==========
Status Green
Dept Finance
Team Compliance
Environment Production
Если для параметра -Operation
задается значение Replace
, существующие теги заменяются новым набором тегов.
$tags = @{"Project"="ECommerce"; "CostCenter"="00123"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Replace
В ресурсе остаются только новые теги.
Properties :
Name Value
========== =========
CostCenter 00123
Team Web
Project ECommerce
Эти же команды также работают с группами ресурсов и подписками. Укажите их в идентификаторе группы ресурсов или подписки, которые нужно отметить тегом.
Чтобы добавить новый набор тегов в группу ресурсов, используйте:
$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
New-AzTag -ResourceId $resourceGroup.ResourceId -tag $tags
Чтобы обновить теги для группы ресурсов, используйте:
$tags = @{"CostCenter"="00123"; "Environment"="Production"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
Update-AzTag -ResourceId $resourceGroup.ResourceId -Tag $tags -Operation Merge
Чтобы добавить новый набор тегов к подписке, используйте:
$tags = @{"CostCenter"="00123"; "Environment"="Dev"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
New-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags
Чтобы обновить теги для подписки, используйте:
$tags = @{"Team"="Web Apps"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Update-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags -Operation Merge
В группе ресурсов может быть несколько ресурсов с одинаковым именем. В этом случае можно задать каждый ресурс, используя следующие команды:
$resource = Get-AzResource -ResourceName sqlDatabase1 -ResourceGroupName examplegroup
$resource | ForEach-Object { Update-AzTag -Tag @{ "Dept"="IT"; "Environment"="Test" } -ResourceId $_.ResourceId -Operation Merge }
Вывод списка тегов
Чтобы получить теги для ресурса, группы ресурсов или подписки, используйте команду Get-AzTag и укажите идентификатор ресурса для сущности.
Чтобы просмотреть теги ресурса, используйте:
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Get-AzTag -ResourceId $resource.id
Чтобы просмотреть теги группы ресурсов, используйте:
$resourceGroup = Get-AzResourceGroup -Name demoGroup
Get-AzTag -ResourceId $resourceGroup.ResourceId
Чтобы просмотреть теги подписки, используйте:
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Get-AzTag -ResourceId "/subscriptions/$subscription"
Список по тегу
Чтобы получить ресурсы с определенным именем и значением тега, используйте:
(Get-AzResource -Tag @{ "CostCenter"="00123"}).Name
Чтобы получить ресурсы с определенным именем и любым значением тега, используйте:
(Get-AzResource -TagName "Dept").Name
Чтобы получить группу ресурсов с определенным именем и значением тега, используйте:
(Get-AzResourceGroup -Tag @{ "CostCenter"="00123" }).ResourceGroupName
Удалить теги
Чтобы удалить конкретные теги, используйте Update-AzTag
и задайте -Operation
для значение Delete
. Передайте идентификаторы ресурсов тегов, которые требуется удалить.
$removeTags = @{"Project"="ECommerce"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $removeTags -Operation Delete
Указанные теги удаляются.
Properties :
Name Value
========== =====
CostCenter 00123
Чтобы удалить все теги, используйте команду Remove-AzTag.
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Remove-AzTag -ResourceId "/subscriptions/$subscription"
Дальнейшие действия
- Не все типы ресурсов поддерживают теги. Сведения о возможности применения тегов к типу ресурса см. в статье о поддержке тегов ресурсами Azure.
- Рекомендации по реализации стратегии присвоения тегов см. в разделе Руководство по принятию решений о присвоении имен и тегов для ресурсов.
- Рекомендации и ограничения тегов см. в статье Использование тегов для упорядочения ресурсов Azure и иерархии управления.