Organisation des ressources Azure à l’aide de balisesUse tags to organize your Azure resources

Vous allez appliquer des balises à vos ressources Azure en fournissant des métadonnées pour les organiser de façon logique par catégories.You apply tags to your Azure resources giving metadata to logically organize them into a taxonomy. Chaque balise se compose d’une paire nom-valeur.Each tag consists of a name and a value pair. Par exemple, vous pouvez appliquer le nom « Environnement » et la valeur « Production » à toutes les ressources en production.For example, you can apply the name "Environment" and the value "Production" to all the resources in production.

Une fois que vous avez appliqué une balise, vous pouvez utiliser son nom et sa valeur pour récupérer toutes les ressources dans votre abonnement.After you apply tags, you can retrieve all the resources in your subscription with that tag name and value. Les balises vous permettent de récupérer les ressources associées de groupes de ressources différents.Tags enable you to retrieve related resources from different resource groups. Cette approche est utile lorsque vous devez organiser les ressources à des fins de facturation ou de gestion.This approach is helpful when you need to organize resources for billing or management.

Votre taxonomie doit prendre en compte une stratégie de balisage des métadonnées en libre-service en plus d’une stratégie de balisage automatique pour réduire la charge pesant sur les utilisateurs et augmenter la précision.Your taxonomy should consider a self-service metadata tagging strategy in addition to an auto-tagging strategy to reduce the burden on users and increase accuracy.

Les limites suivantes s’appliquent aux balises :The following limitations apply to tags:

  • Chaque ressource ou groupe de ressources peut inclure un maximum de 15 paires nom/valeur de balise.Each resource or resource group can have a maximum of 15 tag name/value pairs. Cette limitation s’applique uniquement aux balises directement appliquées au groupe de ressources ou à la ressource.This limitation applies only to tags directly applied to the resource group or resource. Un groupe de ressources peut contenir de nombreuses ressources qui ont chacune 15 paires nom/valeur de balise.A resource group can contain many resources that each have 15 tag name/value pairs. Si vous devez associer plus de 15 valeurs à une ressource, utilisez une chaîne JSON pour la valeur de balise.If you have more than 15 values that you need to associate with a resource, use a JSON string for the tag value. La chaîne JSON peut contenir plusieurs valeurs appliquées à un seul nom de balise.The JSON string can contain many values that are applied to a single tag name. Cet article présente un exemple d’affectation d’une chaîne JSON à la balise.This article shows an example of assigning a JSON string to the tag.
  • Le nom de balise est limité à 512 caractères, et la valeur de balise à 256 caractères.The tag name is limited to 512 characters, and the tag value is limited to 256 characters. Pour les comptes de stockage, le nom de balise est limité à 128 caractères, et la valeur de balise à 256 caractères.For storage accounts, the tag name is limited to 128 characters, and the tag value is limited to 256 characters.
  • Les machines virtuelles sont limitées à un total de 2 048 caractères pour tous les noms de balises et les valeurs.Virtual Machines are limited to a total of 2048 characters for all tag names and values.
  • Les ressources d’un groupe de ressources n’héritent pas des balises appliquées à ce groupe de ressources.Tags applied to the resource group are not inherited by the resources in that resource group.
  • Les balises ne peuvent pas être appliquées à des ressources classiques comme les Services cloud.Tags can't be applied to classic resources such as Cloud Services.
  • Les noms de balise ne peuvent pas contenir ces caractères : <, >, %, &, \, ?, /Tag names can't contain these characters: <, >, %, &, \, ?, /

Pour appliquer des balises aux ressources, l’utilisateur doit disposer de l’accès en écriture pour ce type de ressource.To apply tags to resources, the user must have write access to that resource type. Pour appliquer des balises à tous les types de ressources, utilisez le rôle Contributeur.To apply tags to all resource types, use the Contributor role. Pour appliquer des balises à un seul type de ressource, utilisez le rôle Contributeur pour cette ressource.To apply tags to only one resource type, use the contributor role for that resource. Par exemple, pour appliquer des balises aux machines virtuelles, utilisez le collaborateur de machine virtuelle.For example, to apply tags to virtual machines, use the Virtual Machine Contributor.

Note

Cet article explique comment supprimer les données personnelles de l’appareil ou du service et il peut être utilisé dans le cadre de vos obligations en vertu du Règlement général sur la protection des données.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. Si vous recherchez des informations générales sur le RGPD, consultez la section RGPD du portail Approbation de services.If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.

PowerShellPowerShell

Les exemples de cet article nécessitent la version 6.0 ou ultérieure d’Azure PowerShell.The examples in this article require version 6.0 or later of Azure PowerShell. Si vous ne disposez pas de la version 6.0 ou ultérieure, mettez à jour votre version.If you don't have version 6.0 or later, update your version.

Pour afficher les balises existantes pour un groupe de ressources, utilisez :To see the existing tags for a resource group, use:

(Get-AzureRmResourceGroup -Name examplegroup).Tags

Le script retourne les informations au format suivant :That script returns the following format:

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

Pour afficher les balises existantes pour une ressource dont l’ID de ressource est spécifié, utilisez :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

Alternativement, pour afficher les balises existantes pour une ressource dont le nom et le groupe de ressources sont spécifiés, utilisez :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

Pour obtenir les groupes de ressources contenant une balise spécifique, utilisez :To get resource groups that have a specific tag, use:

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

Pour obtenir les ressources contenant une balise spécifique, utilisez :To get resources that have a specific tag, use:

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

Pour obtenir les ressources contenant un nom de balise spécifique, utilisez :To get resources that have a specific tag name, use:

(Get-AzureRmResource -TagName Dept).Name

Chaque fois que vous appliquez des balises à une ressource ou un groupe de ressources, vous remplacez les balises existantes de cette ressource ou de ce groupe de ressources.Every time you apply tags to a resource or a resource group, you overwrite the existing tags on that resource or resource group. Par conséquent, vous devez utiliser une approche différente selon que la ressource ou le groupe de ressources a des balises existantes.Therefore, you must use a different approach based on whether the resource or resource group has existing tags.

Pour ajouter des balises à un groupe de ressources ne contenant pas de balises existantes, utilisez :To add tags to a resource group without existing tags, use:

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

Pour ajouter des balises à un groupe de ressources avec des balises existantes, récupérez les balises existantes, ajoutez la nouvelle balise et réappliquez les balises :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

Pour ajouter des balises à une ressource ne contenant pas de balises existantes, utilisez :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

Pour ajouter des balises à une ressource avec des balises existantes, utilisez :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

Pour appliquer toutes les balises d’un groupe de ressources à ses ressources sans conserver les balises existantes, utilisez le script suivant :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 }
}

Pour appliquer toutes les balises d’un groupe de ressources à ses ressources et conserver les balises existantes sur les ressources qui ne sont pas des doublons, utilisez le script suivant :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
        }
    }
}

Pour supprimer toutes les balises, utilisez une table de hachage vide :To remove all tags, pass an empty hash table:

Set-AzureRmResourceGroup -Tag @{} -Name examplegroup

Azure CLIAzure CLI

Pour afficher les balises existantes pour un groupe de ressources, utilisez :To see the existing tags for a resource group, use:

az group show -n examplegroup --query tags

Le script retourne les informations au format suivant :That script returns the following format:

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

Alternativement, pour afficher les balises existantes pour une ressource dont le nom, le type et le groupe sont spécifiés, utilisez :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

Durant un bouclage sur une collection de ressources, vous préférez peut-être afficher la ressource par ID de ressource.When looping through a collection of resources, you might want to show the resource by resource ID. Un exemple complet est présenté plus loin dans cet article.A complete example is shown later in this article. Pour afficher les balises existantes pour une ressource dont l’ID de ressource est spécifié, utilisez :To see the existing tags for a resource that has a specified resource ID, use:

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

Pour obtenir des groupes de ressources contenant une balise spécifique, utilisez az group list :To get resource groups that have a specific tag, use az group list:

az group list --tag Dept=IT

Pour obtenir toutes les ressources contenant une balise et une valeur spécifiques, utilisez 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

Chaque fois que vous appliquez des balises à une ressource ou un groupe de ressources, vous remplacez les balises existantes de cette ressource ou de ce groupe de ressources.Every time you apply tags to a resource or a resource group, you overwrite the existing tags on that resource or resource group. Par conséquent, vous devez utiliser une approche différente selon que la ressource ou le groupe de ressources a des balises existantes.Therefore, you must use a different approach based on whether the resource or resource group has existing tags.

Pour ajouter des balises à un groupe de ressources ne contenant pas de balises existantes, utilisez :To add tags to a resource group without existing tags, use:

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

Pour ajouter des balises à une ressource ne contenant pas de balises existantes, utilisez :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"

Pour ajouter des balises à une ressource qui comporte déjà les balises, récupérez les balises existantes et reformatez cette valeur, puis réappliquez les balises nouvelles et existantes :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"

Pour appliquer toutes les balises d’un groupe de ressources à ses ressources sans conserver les balises existantes, utilisez le script suivant :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

Pour appliquer toutes les balises d’un groupe de ressources à ses ressources en conservant les balises existantes, utilisez le script suivant :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

ModèlesTemplates

Pour marquer une ressource au cours du déploiement, ajoutez l’élément tags à la ressource que vous déployez.To tag a resource during deployment, add the tags element to the resource you are deploying. Indiquez le nom et la valeur de la balise.Provide the tag name and value.

Appliquer une valeur littérale au nom de baliseApply a literal value to the tag name

L’exemple suivant illustre un compte de stockage avec deux balises (Dept et Environment) définies sur des valeurs littérales :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": { }
    }
    ]
}

Appliquer un objet à l’élément de baliseApply an object to the tag element

Vous pouvez définir un paramètre d’objet qui stocke plusieurs balises et appliquer cet objet à l’élément de balise.You can define an object parameter that stores several tags, and apply that object to the tag element. Chaque propriété de l’objet devient une balise distincte pour la ressource.Each property in the object becomes a separate tag for the resource. L’exemple suivant illustre un paramètre nommé tagValues appliqué à l’élément de balise.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": {}
    }
  ]
}

Appliquer une chaîne JSON au nom de baliseApply a JSON string to the tag name

Pour stocker plusieurs valeurs dans une seule balise, appliquez une chaîne JSON qui représente les valeurs.To store many values in a single tag, apply a JSON string that represents the values. La chaîne JSON complète est stockée sous la forme d’une balise ne pouvant pas dépasser 256 caractères.The entire JSON string is stored as one tag that cannot exceed 256 characters. L’exemple illustre une balise unique nommée CostCenter qui contient plusieurs valeurs d’une chaîne 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": { }
    }
    ]
}

PortailPortal

  1. Pour afficher les mot clés d’une ressource ou d’un groupe de ressources, recherchez les mots clés existants dans la vue d’ensemble.To view the tags for a resource or a resource group, looks for existing tags in the overview. Si vous n’avez préalablement appliqué aucune mot clé, cette liste est vide.If you have not previously applied tags, the list is empty.

    Afficher les mots clés d’une ressource ou d’un groupe de ressources

  2. Pour ajouter un mot clé, sélectionnez Cliquez ici pour ajouter des mots clés.To add a tag, select Click here to add tags.

  3. Donnez un nom et une valeur.Provide a name and value. Sélectionnez + pour ajouter le mot clé.Select + to add the tag.

    Ajouter un mot clé

  4. Continuez à ajouter les mots clés dont vous avez besoin.Continue adding tags as needed. Lorsque vous avez terminé, sélectionnez Enregistrer.When done, select Save.

    Enregistrer les mots clés

  5. Les mots clés sont maintenant affichés dans la vue d’ensemble.The tags are now displayed in the overview.

    Afficher les mots clés

  6. Pour ajouter ou supprimer un mot clé, sélectionnez modifier.To add or delete a tag, select change.

  7. Pour supprimer un mot clé, sélectionnez l’icône de la Corbeille.To delete a tag, select the trash icon. Sélectionnez ensuite Enregistrer.Then, select Save.

    Supprimer un mot clé

Pour attribuer des mots clés en bloc à plusieurs ressources :To bulk assign tags to multiple resources:

  1. Dans une liste de ressources, cochez la case en regard des ressources auxquelles vous souhaitez attribuer le mot clé.From any list of resources, select the checkbox for the resources you want to assign the tag.

    Sélectionner plusieurs ressources

  2. Sélectionnez Attribuer des mots clés.Select Assign tags

    Attribuer des mots clés

  3. Après chaque nom et valeur, sélectionnez +.After each name and value, select +. Lorsque vous avez terminé, sélectionnez Attribuer.When done, select Assign.

    Sélectionner Attribuer

Pour afficher toutes les ressources ayant un mot clé :To view all resources with a tag:

  1. Sélectionnez Tous les services, puis Mots clés.Select All services and Tags.

    Rechercher par mot clé

  2. Sélectionnez le mot clé pour afficher les ressources associées.Select the tag for viewing resources.

    Sélectionner le mot clé

  3. Toutes les ressources associées à ce mot clé sont affichées.All resources with that tag are displayed.

    Afficher les ressources par mot clé

  4. Pour un accès rapide, épinglez la vue au tableau de bord.For quick access, pin the view to the dashboard.

    Épingler au tableau de bord

  5. La vue est disponible à partir du tableau de bord.The view is available from the dashboard.

    Tableau de bord

API RESTREST API

Le portail Azure et PowerShell utilisent tous deux l’API REST du Gestionnaire de ressources en arrière-plan.The Azure portal and PowerShell both use the Resource Manager REST API behind the scenes. Si vous avez besoin d’intégrer le balisage dans un autre environnement, vous pouvez récupérer des balises en utilisant GET sur l’ID de ressource et mettre à jour le jeu de balises en utilisant un appel 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.

Balises et facturationTags and billing

Vous pouvez utiliser des balises pour regrouper vos données de facturation.You can use tags to group your billing data. Par exemple, si vous exécutez plusieurs machines virtuelles pour différentes organisations, vous pouvez recourir aux balises pour regrouper l’utilisation par centre de coûts.For example, if you're running multiple VMs for different organizations, use the tags to group usage by cost center. Vous pouvez également utiliser des balises pour catégoriser les coûts par environnement d’exécution ; par exemple, l’utilisation de la facturation pour les machines virtuelles en cours d’exécution dans l’environnement de production.You can also use tags to categorize costs by runtime environment, such as the billing usage for VMs running in the production environment.

Vous pouvez récupérer des informations sur les balises par le biais des API Resource Usage et RateCard ou du fichier de valeurs séparées par des virgules (CSV).You can retrieve information about tags through the Azure Resource Usage and RateCard APIs or the usage comma-separated values (CSV) file. Téléchargez le fichier d’utilisation depuis le Centre des comptes Azure ou depuis le portail Azure.You download the usage file from the Azure Account Center or Azure portal. Pour plus d’informations, consultez Télécharger et consulter votre facture Azure et vos données d’utilisation quotidienne.For more information, see Download or view your Azure billing invoice and daily usage data. Lorsque vous téléchargez le fichier d’utilisation depuis le Centre des comptes Azure, sélectionnez Version 2.When downloading the usage file from the Azure Account Center, select Version 2. Pour les services qui prennent en charge les balises avec la facturation, les balises s’affichent dans la colonne Balises.For services that support tags with billing, the tags appear in the Tags column.

Pour plus d’informations sur les opérations de l’API REST, consultez Informations de référence sur l’API REST Azure Billing.For REST API operations, see Azure Billing REST API Reference.

Étapes suivantesNext steps