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

Vous appliquez des balises à vos ressources Azure pour les organiser de façon logique par catégories.You apply tags to your Azure resources to logically organize them by categories. Chaque balise se compose d’un nom et d’une valeur.Each tag consists of a name and a value. 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. En l’absence de cette balise, il pourrait être difficile de savoir si une ressource est destinée au développement, aux tests ou à la production.Without this tag, you might have difficulty identifying whether a resource is intended for development, test, or production. « Environnement » et « Production » sont juste des exemples.However, "Environment" and "Production" are just examples. Vous devez définir les noms et les valeurs les plus pertinentes pour organiser votre abonnement.You define the names and values that make the most sense for organizing your subscription.

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 qui se trouvent dans des groupes de ressources différents.Tags enable you to retrieve related resources that reside in 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.

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 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 un « service cloud (classique) ».Tags cannot be applied to classic resources such as "Cloud service (classic)".
  • Les caractères suivants ne sont pas pris en charge :These characters are not supported:
    • <
    • >
    • %
    • &
    • \\
    • ?
    • /

PowerShellPowerShell

Les exemples de cet article nécessitent la version 3.0 ou ultérieure d’Azure PowerShell.The examples in this article require version 3.0 or later of Azure PowerShell. Si vous n’avez pas la version 3.0, vous devez mettre à jour votre version à l’aide de PowerShell Gallery ou de Web Platform Installer.If you do not have version 3.0 or later, update your version by using PowerShell Gallery or Web Platform Installer.

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 {resource-id}).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:

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

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

(Find-AzureRmResource -TagName Dept -TagValue Finance).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 += @{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 += @{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)
{
    Find-AzureRmResource -ResourceGroupNameEquals $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 = $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
    }
}

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 balises pour une ressource ou un groupe de ressources, sélectionnez l’icône Balises.To view the tags for a resource or a resource group, select the Tags icon.

    Sélectionner des balises dans les panneaux de ressources et de groupe de ressources

  2. Vous voyez les balises existantes pour la ressource.You see the existing tags for the resource. Si vous n’avez préalablement appliqué aucune balise, cette liste est vide.If you have not previously applied tags, the list is empty.

    Afficher les balises existantes des panneaux de ressources et de groupe de ressources

  3. Pour ajouter une balise, tapez un nom et une valeur ou sélectionnez-en dans le menu déroulant.To add a tag, type a name and value, or select an existing one from the drop-down menu. Sélectionnez Enregistrer.Select Save.

    Ajouter une balise

  4. Pour afficher toutes les ressources ayant une valeur de balise, sélectionnez > (Plus de services) et saisissez le mot Balises dans la zone de texte de filtre.To view all the resources that have a tag value, select > (More services), and enter the word Tags into the filter text box. Sélectionnez Balises parmi les options disponibles.Select Tags from the available options.

    Rechercher des balises via le hub Parcourir

  5. Un résumé des balises de vos abonnements s’affiche.You see a summary of the tags in your subscriptions.

    Afficher toutes les balises

  6. Sélectionnez l’une de ces balises pour afficher les ressources et les groupes de ressources associés à cette balise.Select any of the tags to display the resources and resource groups with that tag.

    Afficher les ressources balisées

  7. Sélectionnez Épingler le panneau au tableau de bord pour y accéder rapidement.Select Pin blade to dashboard for quick access.

    Épingler des balises au tableau de bord

  8. Vous pouvez sélectionner la balise épinglée sur le tableau de bord pour afficher les ressources associées à cette balise.You can select the pinned tag from the dashboard to see the resources with that tag.

    Épingler des balises au tableau de bord

de l’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 are 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 portail des comptes Azure ou depuis le portail EA.You download the usage file from the Azure account portal or EA portal. Pour plus d’informations sur l’accès par programme aux informations de facturation, consultez Obtenir une vue d’ensemble de votre consommation des ressources Microsoft Azure.For more information about programmatic access to billing information, see Gain insights into your Microsoft Azure resource consumption. 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.

Lorsque vous téléchargez le fichier CSV d’utilisation pour les services qui prennent en charge les balises avec la facturation, les balises s’affichent dans la colonne Balises .When you download the usage CSV for services that support tags with billing, the tags appear in the Tags column. Pour plus d’informations, consultez Comprendre votre facture Microsoft Azure.For more information, see Understand your bill for Microsoft Azure.

Voir les balises dans la facturation

étapes suivantesNext steps