Поделиться через


Применение тегов с помощью 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" на зеленый.

$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 и задайте для него значение -OperationDelete. Передайте идентификаторы ресурсов тегов, которые необходимо удалить.

$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"

Дальнейшие шаги