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.

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 da gruppi di risorse diversi.Tags enable you to retrieve related resources from 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. 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.
  • 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.
  • Non è possibile applicare tag alle risorse classiche, ad esempio Servizi cloud.Tags can't be applied to classic resources such as Cloud Services.
  • I nomi dei tag non possono contenere i caratteri seguenti: <, >, %, &, \, ?, /Tag names can't contain these characters: <, >, %, &, \, ?, /

Nota

Questo articolo illustra le procedure per l'eliminazione dei dati personali dal dispositivo o dal servizio e può essere usato per adempiere gli obblighi del Regolamento generale sulla protezione dei dati (GDPR).This article provides steps for how to delete personal data from the device or service and can be used to support your obligations under the GDPR. Per informazioni generali sul GDPR, vedere la sezione di Service Trust Portal dedicata al GDPR.If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.

PowerShellPowerShell

Gli esempi di questo articolo richiedono la versione 6.0 o successiva di Azure PowerShell.The examples in this article require version 6.0 or later of Azure PowerShell. Se non si dispone della versione 6.0 o successiva aggiornare la versione.If you do not have version 6.0 or later, update your version.

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 /subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>).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:

(Get-AzureRmResourceGroup -Tag @{ Dept="Finance" }).ResourceGroupName

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

(Get-AzureRmResource -Tag @{ Dept="Finance"}).Name

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

(Get-AzureRmResource -TagName Dept).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.Add("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.Add("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)
{
    Get-AzureRmResource -ResourceGroupName $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 = Get-AzureRmResource -ResourceGroupName $group.ResourceGroupName
    foreach ($r in $resources)
    {
        $resourcetags = (Get-AzureRmResource -ResourceId $r.ResourceId).Tags
        if ($resourcetags)
        {
            foreach ($key in $group.Tags.Keys)
            {
                if (-not($resourcetags.ContainsKey($key)))
                {
                    $resourcetags.Add($key, $group.Tags[$key])
                }
            }
            Set-AzureRmResource -Tag $resourcetags -ResourceId $r.ResourceId -Force
        }
        else
        {
            Set-AzureRmResource -Tag $group.Tags -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": { }
    }
    ]
}

PortalePortal

  1. Per visualizzare i tag per una risorsa o un gruppo di risorse, cercare i tag esistenti nella panoramica.To view the tags for a resource or a resource group, looks for existing tags in the overview. 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 per la risorsa o il gruppo di risorse

  2. Per aggiungere un tag, selezionare Fare clic qui per aggiungere i tag.To add a tag, select Click here to add tags.

  3. Specificare un nome e valore.Provide a name and value. Selezionare + per aggiungere il tag.Select + to add the tag.

    Aggiungere un tag

  4. Continuare ad aggiungere i tag in base alle esigenze.Continue adding tags as needed. Al termine scegliere Salva.When done, select Save.

    Salvare i tag

  5. I tag vengono ora visualizzati nella panoramica.The tags are now displayed in the overview.

    Visualizzare i tag

  6. Per aggiungere o eliminare un tag, selezionare Modifica.To add or delete a tag, select change.

  7. Per eliminare un tag, selezionare l'icona Cestino.To delete a tag, select the trash icon. Selezionare quindi Salva.Then, select Save.

    Eliminare un tag

Per eseguire l'assegnazione in blocco dei tag a più risorse:To bulk assign tags to multiple resources:

  1. Da qualsiasi elenco di risorse selezionare la casella di controllo per le risorse a cui si vuole assegnare il tag.From any list of resources, select the checkbox for the resources you want to assign the tag.

    Selezionare più risorse

  2. Selezionare Assegna tag.Select Assign tags

    Assegnare i tag

  3. Dopo ogni nome e valore, selezionare +.After each name and value, select +. Al termine selezionare Assegna.When done, select Assign.

    Selezionare Assegna

Per visualizzare tutte le risorse con un tag:To view all resources with a tag:

  1. Selezionare Tutti i servizi e Tag.Select All services and Tags.

    Ricerca in base al tag

  2. Selezionare il tag per la visualizzazione delle risorse.Select the tag for viewing resources.

    Selezionare il tag

  3. Vengono visualizzate tutte le risorse con tale tag.All resources with that tag are displayed.

    Visualizzare le risorse in base al tag

  4. Per l'accesso rapido, aggiungere la visualizzazione al dashboard.For quick access, pin the view to the dashboard.

    Aggiungi al dashboard

  5. La visualizzazione è disponibile dal dashboard.The view is available from the dashboard.

    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