Partilhar via


Aplicar tags com o Azure PowerShell

Este artigo descreve como usar o Azure PowerShell para marcar recursos, grupos de recursos e subscrições. Para recomendações e limitações de tags, consulte Usar tags para organizar os seus recursos Azure e hierarquia de gestão.

Aplicar tags

O Azure PowerShell oferece dois comandos para aplicar tags: New-AzTag e Update-AzTag. Precisas de ter a Az.Resources versão 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 o Azure PowerShell versão 3.6.1 ou posterior.

Substitui New-AzTag todas as etiquetas no recurso, grupo de recursos ou subscrição. Quando chamar o comando, passe o ID do recurso da entidade que quer 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 termina, repare que o recurso tem duas etiquetas.

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

Se executares o comando novamente, mas desta vez com etiquetas diferentes, repara 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 tags a um recurso que já tem tags, use 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 crescem com a adição das duas novas etiquetas.

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

Cada nome de etiqueta pode ter apenas um valor. Se fornecer um novo valor para uma etiqueta, ela substitui o valor antigo mesmo que use a operação de fusão. 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 defines o -Operation parâmetro para 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. Passa-os no identificador do grupo de recursos ou subscrição que queres identificar.

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, use o comando Get-AzTag e passe o ID de recurso da entidade.

Para ver as etiquetas de um recurso, use:

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

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

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

Lista por etiqueta

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

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

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

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

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

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

Remover tags

Para remover etiquetas específicas, use Update-AzTag e defina -Operation para Delete. Passa os IDs dos recursos das etiquetas que queres apagar.

$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, use o comando Remove-AzTag .

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

Próximos passos