Aplicar etiquetas com Azure PowerShell

Este artigo descreve como utilizar Azure PowerShell para etiquetar recursos, grupos de recursos e subscrições. Para obter recomendações e limitações de etiquetas, veja Utilizar etiquetas para organizar os recursos do Azure e a hierarquia de gestão.

Aplicar etiquetas

Azure PowerShell oferece dois comandos para aplicar etiquetas: New-AzTag e Update-AzTag. Tem de ter a Az.Resources versão 1.12.0 do módulo 1.12.0 ou posterior. Pode verificar a sua versão com Get-InstalledModule -Name Az.Resources. Pode instalar esse módulo ou instalar Azure PowerShell versão 3.6.1 ou posterior.

O New-AzTag substitui todas as etiquetas no recurso, grupo de recursos ou subscrição. Quando chamar o comando, transmita o ID de recurso da entidade que pretende etiquetar.

O exemplo seguinte aplica um conjunto de etiquetas a uma conta de armazenamento:

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags

Quando o comando for concluído, repare que o recurso tem duas etiquetas.

Properties :
        Name    Value
        ======  =======
        Dept    Finance
        Status  Normal

Se executar o comando novamente, mas desta vez com etiquetas diferentes, repare que as etiquetas anteriores desaparecem.

$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

Para adicionar etiquetas a um recurso que já tenha etiquetas, utilize Update-AzTag. Defina o -Operation parâmetro como Merge.

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge

Repare que as etiquetas existentes aumentam com a adição das duas novas etiquetas.

Properties :
        Name         Value
        ===========  ==========
        Status       Normal
        Dept         Finance
        Team         Compliance
        Environment  Production

Cada nome de etiqueta só pode ter um valor. Se fornecer um novo valor para uma etiqueta, este substitui o valor antigo mesmo que utilize a operação de impressão em série. O exemplo seguinte altera a Status etiqueta de Normal para Verde.

$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

Quando define o -Operation parâmetro como Replace, o novo conjunto de etiquetas substitui as etiquetas existentes.

$tags = @{"Project"="ECommerce"; "CostCenter"="00123"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Replace

Apenas as novas etiquetas permanecem no recurso.

Properties :
        Name        Value
        ==========  =========
        CostCenter  00123
        Team        Web
        Project     ECommerce

Os mesmos comandos também funcionam com grupos de recursos ou subscrições. Transmita-os no identificador do grupo de recursos ou subscrição que pretende etiquetar.

Para adicionar um novo conjunto de etiquetas a um grupo de recursos, utilize:

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
New-AzTag -ResourceId $resourceGroup.ResourceId -tag $tags

Para atualizar as etiquetas de um grupo de recursos, utilize:

$tags = @{"CostCenter"="00123"; "Environment"="Production"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
Update-AzTag -ResourceId $resourceGroup.ResourceId -Tag $tags -Operation Merge

Para adicionar um novo conjunto de etiquetas a uma subscrição, utilize:

$tags = @{"CostCenter"="00123"; "Environment"="Dev"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
New-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags

Para atualizar as etiquetas de uma subscrição, utilize:

$tags = @{"Team"="Web Apps"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Update-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags -Operation Merge

Pode ter mais do que um recurso com o mesmo nome num grupo de recursos. Nesse caso, pode definir cada recurso com os seguintes comandos:

$resource = Get-AzResource -ResourceName sqlDatabase1 -ResourceGroupName examplegroup
$resource | ForEach-Object { Update-AzTag -Tag @{ "Dept"="IT"; "Environment"="Test" } -ResourceId $_.ResourceId -Operation Merge }

Listar etiquetas

Para obter as etiquetas de um recurso, grupo de recursos ou subscrição, utilize o comando Get-AzTag e transmita o ID de recurso da entidade.

Para ver as etiquetas de um recurso, utilize:

$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Get-AzTag -ResourceId $resource.id

Para ver as etiquetas de um grupo de recursos, utilize:

$resourceGroup = Get-AzResourceGroup -Name demoGroup
Get-AzTag -ResourceId $resourceGroup.ResourceId

Para ver as etiquetas de uma subscrição, utilize:

$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Get-AzTag -ResourceId "/subscriptions/$subscription"

Listar por etiqueta

Para obter recursos com um nome e valor de etiqueta específicos, utilize:

(Get-AzResource -Tag @{ "CostCenter"="00123"}).Name

Para obter recursos com um nome de etiqueta específico com qualquer valor de etiqueta, utilize:

(Get-AzResource -TagName "Dept").Name

Para obter grupos de recursos com um nome e valor de etiqueta específicos, utilize:

(Get-AzResourceGroup -Tag @{ "CostCenter"="00123" }).ResourceGroupName

Remover etiquetas

Para remover etiquetas específicas, utilize Update-AzTag e defina -Operation como Delete. Transmita os IDs de recurso das etiquetas que pretende eliminar.

$removeTags = @{"Project"="ECommerce"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $removeTags -Operation Delete

As etiquetas especificadas são removidas.

Properties :
        Name        Value
        ==========  =====
        CostCenter  00123

Para remover todas as etiquetas, utilize o comando Remove-AzTag .

$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Remove-AzTag -ResourceId "/subscriptions/$subscription"

Passos seguintes