Usare tag per organizzare le risorse di AzureUse tags to organize your Azure resources

I tag vengono applicati alle risorse di Azure per organizzarle in modo logico in categorie.You apply tags to your Azure resources to logically organize them by categories. Ogni tag è costituito da un nome e un valore.Each tag consists of a name and a value. Ad esempio, è possibile applicare il nome "Environment" e il valore "Production" a tutte le risorse nell'ambiente di produzione.For example, you can apply the name "Environment" and the value "Production" to all the resources in production. Senza questo tag, potrebbe essere difficile stabilire se una risorsa è destinata allo sviluppo, al testing o alla produzione.Without this tag, you might have difficulty identifying whether a resource is intended for development, test, or production. "Environment" e "Production" sono solo esempi.However, "Environment" and "Production" are just examples. È possibile definire i nomi e i valori più adatti per organizzare la sottoscrizione.You define the names and values that make the most sense for organizing your subscription.

Dopo aver applicato i tag, è possibile recuperare tutte le risorse nella sottoscrizione che hanno un nome e un valore di tag corrispondenti.After you apply tags, you can retrieve all the resources in your subscription with that tag name and value. I tag permettono di recuperare risorse correlate che si trovano in gruppi di risorse diversi.Tags enable you to retrieve related resources that reside in different resource groups. Questo approccio può risultare utile per l'organizzazione delle risorse per la fatturazione o la gestione.This approach is helpful when you need to organize resources for billing or management.

Ai tag si applicano le limitazioni seguenti:The following limitations apply to tags:

  • Ogni risorsa o gruppo di risorse può avere un massimo di 15 coppie nome-valore di tag.Each resource or resource group can have a maximum of 15 tag name/value pairs. Questa limitazione si applica solo ai tag applicati direttamente al gruppo di risorse o alla risorsa.This limitation applies only to tags directly applied to the resource group or resource. Un gruppo di risorse può contenere più risorse ognuna con 15 coppie nome-valore di tag.A resource group can contain many resources that each have 15 tag name/value pairs.
  • Il nome del tag è limitato a 512 caratteri e il valore del tag è limitato a 256 caratteri.The tag name is limited to 512 characters, and the tag value is limited to 256 characters. Per gli account di archiviazione, il nome del tag è limitato a 128 caratteri e il valore a 256 caratteri.For storage accounts, the tag name is limited to 128 characters, and the tag value is limited to 256 characters.
  • I tag applicati al gruppo di risorse non vengono ereditati dalle risorse in tale gruppo di risorse.Tags applied to the resource group are not inherited by the resources in that resource group.

Se si devono associare più di 15 valori a una risorsa, usare una stringa JSON come valore di tag.If you have more than 15 values that you need to associate with a resource, use a JSON string for the tag value. La stringa JSON può contenere diversi valori applicati a un singolo nome di tag.The JSON string can contain many values that are applied to a single tag name. Questo articolo illustra un esempio di assegnazione di una stringa JSON al tag.This article shows an example of assigning a JSON string to the tag.

PowerShellPowerShell

Gli esempi di questo articolo richiedono la versione 3.0 o successiva di Azure PowerShell.The examples in this article require version 3.0 or later of Azure PowerShell. Se non è disponibile la versione 3.0 o successiva, aggiornare la versione usando PowerShell Gallery o l'Installazione guidata piattaforma Web.If you do not have version 3.0 or later, update your version by using PowerShell Gallery or Web Platform Installer.

Per visualizzare i tag esistenti per un gruppo di risorse, usare:To see the existing tags for a resource group, use:

(Get-AzureRmResourceGroup -Name examplegroup).Tags

Lo script restituisce il formato seguente:That script returns the following format:

Name                           Value
----                           -----
Dept                           IT
Environment                    Test

Per visualizzare i tag esistenti per una risorsa con un ID risorsa specificato, usare:To see the existing tags for a resource that has a specified resource ID, use:

(Get-AzureRmResource -ResourceId {resource-id}).Tags

In alternativa, per visualizzare i tag esistenti per una risorsa con un nome e un gruppo di risorse specificati, usare:Or, to see the existing tags for a resource that has a specified name and resource group, use:

(Get-AzureRmResource -ResourceName examplevnet -ResourceGroupName examplegroup).Tags

Per ottenere i gruppi di risorse con un tag specifico, usare:To get resource groups that have a specific tag, use:

(Find-AzureRmResourceGroup -Tag @{ Dept="Finance" }).Name

Per ottenere le risorse con un tag specifico, usare:To get resources that have a specific tag, use:

(Find-AzureRmResource -TagName Dept -TagValue Finance).Name

Ogni volta che si applicano tag a una risorsa o a un gruppo di risorse, si sovrascrivono i tag esistenti in tale risorsa o gruppo di risorse.Every time you apply tags to a resource or a resource group, you overwrite the existing tags on that resource or resource group. È quindi necessario usare un approccio diverso se nella risorsa o nel gruppo di risorse esistono tag.Therefore, you must use a different approach based on whether the resource or resource group has existing tags.

Per aggiungere tag a un gruppo di risorse senza tag esistenti, usare:To add tags to a resource group without existing tags, use:

Set-AzureRmResourceGroup -Name examplegroup -Tag @{ Dept="IT"; Environment="Test" }

Per aggiungere tag a un gruppo di risorse con tag esistenti, recuperare i tag esistenti, aggiungere il nuovo tag e riapplicare i tag:To add tags to a resource group that has existing tags, retrieve the existing tags, add the new tag, and reapply the tags:

$tags = (Get-AzureRmResourceGroup -Name examplegroup).Tags
$tags += @{Status="Approved"}
Set-AzureRmResourceGroup -Tag $tags -Name examplegroup

Per aggiungere tag a una risorsa senza tag esistenti, usare:To add tags to a resource without existing tags, use:

$r = Get-AzureRmResource -ResourceName examplevnet -ResourceGroupName examplegroup
Set-AzureRmResource -Tag @{ Dept="IT"; Environment="Test" } -ResourceId $r.ResourceId -Force

Per aggiungere tag a una risorsa con tag esistenti, usare:To add tags to a resource that has existing tags, use:

$r = Get-AzureRmResource -ResourceName examplevnet -ResourceGroupName examplegroup
$r.tags += @{Status="Approved"}
Set-AzureRmResource -Tag $r.Tags -ResourceId $r.ResourceId -Force

Per applicare tutti i tag da un gruppo di risorse alle risorse senza mantenere i tag esistenti nelle risorse, usare lo script seguente:To apply all tags from a resource group to its resources, and not retain existing tags on the resources, use the following script:

$groups = Get-AzureRmResourceGroup
foreach ($g in $groups)
{
    Find-AzureRmResource -ResourceGroupNameEquals $g.ResourceGroupName | ForEach-Object {Set-AzureRmResource -ResourceId $_.ResourceId -Tag $g.Tags -Force }
}

Per applicare tutti i tag da un gruppo di risorse alle risorse mantenendo i tag esistenti nelle risorse non duplicate, usare lo script seguente:To apply all tags from a resource group to its resources, and retain existing tags on resources that are not duplicates, use the following script:

$group = Get-AzureRmResourceGroup "examplegroup"
if ($group.Tags -ne $null) {
    $resources = $group | Find-AzureRmResource
    foreach ($r in $resources)
    {
        $resourcetags = (Get-AzureRmResource -ResourceId $r.ResourceId).Tags
        foreach ($key in $group.Tags.Keys)
        {
            if (($resourcetags) -AND ($resourcetags.ContainsKey($key))) { $resourcetags.Remove($key) }
        }
        $resourcetags += $group.Tags
        Set-AzureRmResource -Tag $resourcetags -ResourceId $r.ResourceId -Force
    }
}

Per rimuovere tutti i tag, passare una tabella hash vuota:To remove all tags, pass an empty hash table:

Set-AzureRmResourceGroup -Tag @{} -Name examplegroup

Interfaccia della riga di comando di AzureAzure CLI

Per visualizzare i tag esistenti per un gruppo di risorse, usare:To see the existing tags for a resource group, use:

az group show -n examplegroup --query tags

Lo script restituisce il formato seguente:That script returns the following format:

{
  "Dept"        : "IT",
  "Environment" : "Test"
}

In alternativa, per visualizzare i tag esistenti per una risorsa con un nome, un tipo e un gruppo di risorse specificati, usare:Or, to see the existing tags for a resource that has a specified name, type, and resource group, use:

az resource show -n examplevnet -g examplegroup --resource-type "Microsoft.Network/virtualNetworks" --query tags

Quando si scorre una raccolta di risorse si potrebbe voler visualizzare le risorse in base all'ID di risorsa.When looping through a collection of resources, you might want to show the resource by resource ID. Un esempio completo viene illustrato più avanti in questo articolo.A complete example is shown later in this article. Per visualizzare i tag esistenti per una risorsa con un ID risorsa specificato, usare:To see the existing tags for a resource that has a specified resource ID, use:

az resource show --id <resource-id> --query tags

Per ottenere i gruppi di risorse con un tag specifico, usare az group list:To get resource groups that have a specific tag, use az group list:

az group list --tag Dept=IT

Per ottenere tutte le risorse che hanno un tag e un valore specifici, usare az resource list:To get all the resources that have a particular tag and value, use az resource list:

az resource list --tag Dept=Finance

Ogni volta che si applicano tag a una risorsa o a un gruppo di risorse, si sovrascrivono i tag esistenti in tale risorsa o gruppo di risorse.Every time you apply tags to a resource or a resource group, you overwrite the existing tags on that resource or resource group. È quindi necessario usare un approccio diverso se nella risorsa o nel gruppo di risorse esistono tag.Therefore, you must use a different approach based on whether the resource or resource group has existing tags.

Per aggiungere tag a un gruppo di risorse senza tag esistenti, usare:To add tags to a resource group without existing tags, use:

az group update -n examplegroup --set tags.Environment=Test tags.Dept=IT

Per aggiungere tag a una risorsa senza tag esistenti, usare:To add tags to a resource without existing tags, use:

az resource tag --tags Dept=IT Environment=Test -g examplegroup -n examplevnet --resource-type "Microsoft.Network/virtualNetworks"

Per aggiungere tag a una risorsa che dispone già di tag, recuperare i tag esistenti, riformattare il valore e riapplicare i tag nuovi e già esistenti:To add tags to a resource that already has tags, retrieve the existing tags, reformat that value, and reapply the existing and new tags:

jsonrtag=$(az resource show -g examplegroup -n examplevnet --resource-type "Microsoft.Network/virtualNetworks" --query tags)
rt=$(echo $jsonrtag | tr -d '"{},' | sed 's/: /=/g')
az resource tag --tags $rt Project=Redesign -g examplegroup -n examplevnet --resource-type "Microsoft.Network/virtualNetworks"

Per applicare tutti i tag da un gruppo di risorse alle risorse senza mantenere i tag esistenti nelle risorse, usare lo script seguente:To apply all tags from a resource group to its resources, and not retain existing tags on the resources, use the following script:

groups=$(az group list --query [].name --output tsv)
for rg in $groups
do
  jsontag=$(az group show -n $rg --query tags)
  t=$(echo $jsontag | tr -d '"{},' | sed 's/: /=/g')
  r=$(az resource list -g $rg --query [].id --output tsv)
  for resid in $r
  do
    az resource tag --tags $t --id $resid
  done
done

Per applicare tutti i tag da un gruppo di risorse alle risorse e mantenere i tag esistenti nelle risorse, usare lo script seguente:To apply all tags from a resource group to its resources, and retain existing tags on resources, use the following script:

groups=$(az group list --query [].name --output tsv)
for rg in $groups
do
  jsontag=$(az group show -n $rg --query tags)
  t=$(echo $jsontag | tr -d '"{},' | sed 's/: /=/g')
  r=$(az resource list -g $rg --query [].id --output tsv)
  for resid in $r
  do
    jsonrtag=$(az resource show --id $resid --query tags)
    rt=$(echo $jsonrtag | tr -d '"{},' | sed 's/: /=/g')
    az resource tag --tags $t$rt --id $resid
  done
done

ModelliTemplates

Per applicare un tag a una risorsa durante la distribuzione, aggiungere l'elemento tags alla risorsa distribuitaTo tag a resource during deployment, add the tags element to the resource you are deploying. e specificare il nome e il valore del tag.Provide the tag name and value.

Applicare un valore letterale al nome del tagApply a literal value to the tag name

L'esempio seguente illustra un account di archiviazione con due tag (Dept e Environment) impostati su valori letterali:The following example shows a storage account with two tags (Dept and Environment) that are set to literal values:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
    {
      "apiVersion": "2016-01-01",
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[resourceGroup().location]",
      "tags": {
        "Dept": "Finance",
        "Environment": "Production"
      },
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "properties": { }
    }
    ]
}

Applicare un oggetto all'elemento tagApply an object to the tag element

È possibile definire un parametro oggetto in cui vengono memorizzati diversi tag e applicare tale oggetto all'elemento tag.You can define an object parameter that stores several tags, and apply that object to the tag element. Ogni proprietà nell'oggetto diventa un tag separato per la risorsa.Each property in the object becomes a separate tag for the resource. L'esempio seguente include un parametro denominato tagValues che viene applicato all'elemento tag.The following example has a parameter named tagValues that is applied to the tag element.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "tagValues": {
      "type": "object",
      "defaultValue": {
        "Dept": "Finance",
        "Environment": "Production"
      }
    }
  },
  "resources": [
    {
      "apiVersion": "2016-01-01",
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[resourceGroup().location]",
      "tags": "[parameters('tagValues')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "properties": {}
    }
  ]
}

Applicare una stringa JSON al nome del tagApply a JSON string to the tag name

Per memorizzare più valori in un singolo tag, è possibile applicare una stringa JSON che rappresenta tali valori.To store many values in a single tag, apply a JSON string that represents the values. L'intera stringa JSON viene memorizzata come un unico tag che non può superare i 256 caratteri.The entire JSON string is stored as one tag that cannot exceed 256 characters. L'esempio seguente include un tag singolo denominato CostCenter che contiene più valori da una stringa JSON:The following example has a single tag named CostCenter that contains several values from a JSON string:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
    {
      "apiVersion": "2016-01-01",
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[resourceGroup().location]",
      "tags": {
        "CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
      },
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "properties": { }
    }
    ]
}

di Microsoft AzurePortal

  1. Per visualizzare i tag per una risorsa o un gruppo di risorse, selezionare l'icona Tag.To view the tags for a resource or a resource group, select the Tags icon.

    Selezionare i tag nei pannelli della risorsa e del gruppo di risorse

  2. Vengono visualizzati i tag esistenti per la risorsa.You see the existing tags for the resource. Se in precedenza non sono stati applicati tag, l'elenco è vuoto.If you have not previously applied tags, the list is empty.

    Visualizzare i tag esistenti nei pannelli della risorsa e del gruppo di risorse

  3. Per aggiungere un tag, digitare un nome e un valore oppure selezionarne uno esistente nel menu a discesa.To add a tag, type a name and value, or select an existing one from the drop-down menu. Selezionare Salva.Select Save.

    Aggiungere un nuovo tag

  4. Per visualizzare tutte le risorse con un valore di tag, selezionare > (Altri servizi) e immettere la parola Tags nella casella di testo del filtro.To view all the resources that have a tag value, select > (More services), and enter the word Tags into the filter text box. Selezionare Tag tra le opzioni disponibili.Select Tags from the available options.

    Trovare tag tramite l'hub di esplorazione

  5. Nelle sottoscrizioni viene visualizzato un riepilogo dei tag.You see a summary of the tags in your subscriptions.

    Visualizzare tutti i tag

  6. Selezionare un tag per visualizzare le risorse e i gruppi di risorse che lo contengono.Select any of the tags to display the resources and resource groups with that tag.

    Visualizzare le risorse con tag

  7. Selezionare Aggiungi pannello al dashboard per l'accesso rapido.Select Pin blade to dashboard for quick access.

    Aggiungere i tag al dashboard

  8. È possibile selezionare i tag aggiunti dal dashboard per visualizzare le risorse con tale tag.You can select the pinned tag from the dashboard to see the resources with that tag.

    Aggiungere i tag al dashboard

API RESTREST API

Sia il portale di Azure che PowerShell usano l' API REST di Gestione Risorse dietro le quinte.The Azure portal and PowerShell both use the Resource Manager REST API behind the scenes. Se è necessario integrare l'assegnazione di tag in un altro ambiente, è possibile ottenere i tag tramite un'operazione GET sull'ID di risorsa e aggiornare il set di tag tramite una chiamata PATCH.If you need to integrate tagging into another environment, you can get tags by using GET on the resource ID and update the set of tags by using a PATCH call.

Tag e fatturazioneTags and billing

È possibile usare i tag per raggruppare i dati di fatturazione.You can use tags to group your billing data. Ad esempio, se si eseguono più macchine virtuali per organizzazioni diverse, usare i tag per raggruppare l'utilizzo in base al centro di costo.For example, if you are running multiple VMs for different organizations, use the tags to group usage by cost center. È anche possibile usare i tag per classificare i costi in base all'ambiente di runtime; ad esempio, l'uso di fatturazione per le macchine virtuali in esecuzione nell'ambiente di produzione.You can also use tags to categorize costs by runtime environment, such as the billing usage for VMs running in the production environment.

Le informazioni sui tag possono essere recuperate tramite l' API di utilizzo della risorsa di Azure e della Rate Card o il file di utilizzo con valori delimitati da virgole (CSV).You can retrieve information about tags through the Azure Resource Usage and RateCard APIs or the usage comma-separated values (CSV) file. Il file di utilizzo può essere scaricato dal portale dell'account di Azure o dal portale EA.You download the usage file from the Azure account portal or EA portal. Per altre informazioni sull'accesso a livello di codice alle informazioni sulla fatturazione, vedere Ottenere informazioni dettagliate sul consumo delle risorse di Microsoft Azure.For more information about programmatic access to billing information, see Gain insights into your Microsoft Azure resource consumption. Per le operazioni API REST, vedere Riferimento API REST alla fatturazione di Azure.For REST API operations, see Azure Billing REST API Reference.

Quando si scarica il CSV di utilizzo per i servizi che supportano i tag di fatturazione, i tag vengono visualizzati nella colonna Tag .When you download the usage CSV for services that support tags with billing, the tags appear in the Tags column. Per altre informazioni, vedere Comprendere la fattura per Microsoft Azure.For more information, see Understand your bill for Microsoft Azure.

Vedere i tag della fatturazione

Passaggi successiviNext steps