Aplicar etiquetas con Azure PowerShell

En este artículo se describe cómo usar Azure PowerShell para etiquetar recursos, grupos de recursos y suscripciones. Para conocer las limitaciones y recomendaciones de las etiquetas, consulte Uso de etiquetas para organizar los recursos de Azure y jerarquía de administración.

Aplicación de etiquetas

Azure PowerShell ofrece dos comandos para aplicar etiquetas: New-AzTag y Update-AzTag. Debe tener el módulo Az.Resources versión 1.12.0 o posterior. Puede consultar su versión con Get-InstalledModule -Name Az.Resources. Puede instalar ese módulo o instalar Azure PowerShell versión 3.6.1 o posterior.

New-AzTag reemplaza todas las etiquetas en el recurso, el grupo de recursos o la suscripción. Al llamar al comando, pase el id. de recurso de la entidad que desea etiquetar.

En el ejemplo siguiente se aplica un conjunto de etiquetas a una cuenta de almacenamiento:

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

Cuando se complete el comando, observe que el recurso tiene dos etiquetas.

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

Si vuelve a ejecutar el comando, pero esta vez con etiquetas diferentes, observe que las etiquetas anteriores desaparecen.

$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 agregar etiquetas a un recurso que ya tiene etiquetas, use Update-AzTag. Establezca el parámetro -Operation en Merge.

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

Observe que las etiquetas existentes crecen con la adición de las dos nuevas etiquetas.

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

Cada nombre de etiqueta solo puede tener un valor. Si proporciona un valor nuevo para una etiqueta, reemplaza el valor anterior incluso si se usa la operación de combinación. En el ejemplo siguiente la etiqueta Status cambia de Normal a Green (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

Al establecer el parámetro -Operation en Replace, el nuevo conjunto de etiquetas reemplaza a las 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

Solo las etiquetas nuevas siguen en el recurso.

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

Los mismos comandos también funcionan con grupos de recursos o suscripciones. Páselos en el identificador del grupo de recursos o de la suscripción que quiere etiquetar.

Para agregar un nuevo conjunto de etiquetas a un grupo de recursos, use:

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

Para actualizar las etiquetas de un grupo de recursos, use:

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

Para agregar un nuevo conjunto de etiquetas a una suscripción, use:

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

Para actualizar las etiquetas de una suscripción, use:

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

Puede tener más de un recurso con el mismo nombre en un grupo de recursos. En ese caso, puede establecer cada recurso con los siguientes comandos:

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

Lista de etiquetas

Para obtener las etiquetas de un recurso, un grupo de recursos o una suscripción, use el comando Get-AzTag y pase el id. de recurso de la entidad.

Para ver las etiquetas de un recurso, use:

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

Para ver las etiquetas de un grupo de recursos, use:

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

Para ver las etiquetas de una suscripción, use:

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

Enumerar por etiqueta

Para obtener recursos que tengan un nombre y valor de etiqueta específicos, use:

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

Para obtener recursos que tengan un nombre de etiqueta específico y cualquier valor de etiqueta, use:

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

Para obtener grupos de recursos que tengan un nombre y valor de etiqueta específicos, use:

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

Eliminación de etiquetas

Para quitar etiquetas específicas, use Update-AzTag y establezca -Operation en Delete. Pase los identificadores de recursos de las etiquetas que desea eliminar.

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

Se quitan las etiquetas especificadas.

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

Para quitar todas las etiquetas, use el comando Remove-AzTag.

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

Pasos siguientes