Applicare tag con Azure PowerShell

Questo articolo descrive come usare Azure PowerShell per applicare tag a risorse, gruppi di risorse e sottoscrizioni. Per gli elementi consigliati e le limitazioni sui tag, vedi Usare i tag per organizzare le risorse di Azure e la gerarchia di gestione.

Applicare tag

Azure PowerShell offre due comandi per applicare i tag: New-AzTag e Update-AzTag. Devi avere il modulo Az.Resources 1.12.0 o versione successiva. Puoi controllare la tua versione con Get-InstalledModule -Name Az.Resources. Puoi installare quel modulo o installare Azure PowerShell versione 3.6.1 o successiva.

New-AzTag sostituisce tutti i tag nella risorsa, nel gruppo di risorse o nella sottoscrizione. Quando chiami il comando, passa l'ID risorsa dell'entità da contrassegnare.

L'esempio seguente applica un set di tag a un account di archiviazione:

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

Al completamento del comando, noterai che la risorsa ha due tag.

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

Se esegui di nuovo il comando, ma questa volta con tag diversi, noterai che i tag precedenti scompaiono.

$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

Per aggiungere tag a una risorsa che dispone già di tag, usa Update-AzTag. Impostare il parametro -Operation su Merge.

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

Noterai che i tag esistenti aumentano con l'aggiunta dei due nuovi tag.

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

Ogni nome di tag può avere un solo valore. Se specifichi un nuovo valore per un tag, il valore precedente viene sostituito anche se usi l'operazione di unione. Nell'esempio seguente il tag Status viene modificato da Normal a 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

Quando il parametro -Operation su Replace, il nuovo set di tag sostituisce i tag esistenti.

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

Solo i nuovi tag rimangono sulla risorsa.

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

Gli stessi comandi funzionano anche con gruppi di risorse o sottoscrizioni. Passali nell'identificatore del gruppo di risorse o della sottoscrizione da contrassegnare.

Per aggiungere un nuovo set di tag a un gruppo di risorse, usa:

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

Per aggiornare i tag per un gruppo di risorse, usa:

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

Per aggiungere un nuovo set di tag a una sottoscrizione, usa:

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

Per aggiornare i tag per una sottoscrizione, usa:

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

Potresti avere più di una risorsa con lo stesso nome in un gruppo di risorse. In tal caso, puoi impostare ogni risorsa con i comandi seguenti:

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

Elencare tag

Per ottenere i tag per una risorsa, un gruppo di risorse o una sottoscrizione, usa il comando Get-AzTag e passa l'ID risorsa dell'entità.

Per visualizzare i tag per una risorsa, usa:

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

Per visualizzare i tag per un gruppo di risorse, usa:

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

Per visualizzare i tag per una sottoscrizione, usa:

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

Elenca per tag

Per ottenere le risorse con un nome di tag specifico, usa:

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

Per ottenere risorse con un nome di tag specifico con qualsiasi valore di tag, usa:

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

Per ottenere i gruppi di risorse con un tag specifico, usa:

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

Rimuovere tag

Per rimuovere tag specifici, usa Update-AzTag e imposta -Operation suDelete. Passa gli IDs risorsa dei tag che vuoi eliminare.

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

I tag specificati vengono rimossi.

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

Per rimuovere tutti i tag, usa il comando Remove-AzTag.

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

Passaggi successivi