Les libellés sont des paires clé/valeur qui peuvent être utilisées sur Google Cloud pour regrouper des ressources liées ou associées. Par exemple, sur Compute Engine, vous pouvez utiliser des libellés pour regrouper les VM dans des catégories telles que la production, la préproduction ou le développement, afin de pouvoir rechercher des ressources appartenant à chaque étape de développement.
Après avoir ajouté des libellés à vos ressources, vous pouvez tirer parti de la fonctionnalité de filtrage imbriqué pour effectuer des recherches plus précises sur vos ressources avec des libellés.
Avant de commencer
- Consultez la documentation sur les disques persistants.
- Lisez la documentation sur les images.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Qu'est-ce qu'un libellé ?
Un libellé est une paire clé-valeur que vous pouvez attribuer aux instances Google Cloud. Elle vous aide à organiser ces ressources et à gérer vos coûts à grande échelle avec la précision dont vous avez besoin. Vous pouvez associer une étiquette à chaque ressource, puis filtrer les ressources par étiquette. Les informations sur les étiquettes sont transmises au système de facturation. Ainsi, vous pouvez trier vos frais facturés par étiquette. Grâce aux rapports de facturation intégrés, vous pouvez filtrer et regrouper les coûts par étiquette de ressource. Vous pouvez également utiliser des étiquettes pour interroger les exportations de données de facturation.
Exigences relatives aux libellés
Les libellés appliqués à une ressource doivent répondre aux exigences suivantes :
- Chaque ressource peut comporter jusqu'à 64 étiquettes.
- Chaque libellé doit correspondre à une paire clé/valeur.
- Les clés doivent comporter un (1) caractère au minimum et 63 au maximum, et ne peuvent pas être vides. Les valeurs peuvent être vides et comporter 63 caractères au maximum.
- Les clés et les valeurs ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Tous les caractères doivent être au format d'encodage UTF-8. Les caractères internationaux sont autorisés. Les clés doivent commencer par une lettre minuscule ou un caractère international.
- La partie clé d'un libellé doit être unique au sein d'une ressource spécifique. Cependant, vous pouvez utiliser la même clé avec plusieurs ressources.
Ces limites s'appliquent à la clé et à la valeur de chaque libellé, ainsi qu'aux ressources Google Cloud individuelles associées à des libellés. Vous pouvez appliquer autant de libellés que vous le souhaitez à toutes les ressources d'un projet.
Cas d'utilisation courants des libellés
Voici quelques cas d'utilisation courants des étiquettes :
Libellés d'équipe ou de centre de coût : ajoutez des libellés en fonction de l'équipe ou du centre de coût pour distinguer les instances appartenant à différentes équipes (par exemple,
team:research
etteam:analytics
). Vous pouvez utiliser ce type de libellés pour la comptabilité analytique ou la budgétisation.Libellés de composant : par exemple,
component:redis
,component:frontend
,component:ingest
etcomponent:dashboard
.Libellés d'environnement ou d'étape : par exemple,
environment:production
etenvironment:test
.Libellés d'état : par exemple,
state:active
,state:readytodelete
etstate:archive
.Libellés de propriété : permettent d'identifier les équipes responsables des opérations (par exemple,
team:shopping-cart
).
- Libellés de machine virtuelle : un libellé peut être associé à une machine virtuelle. Les tags de machine virtuelle que vous avez définis précédemment apparaissent sous la forme d'un libellé sans valeur.
Nous vous déconseillons de créer de grands nombres d'étiquettes uniques (par exemple, pour les horodatages ou les valeurs individuelles pour chaque appel d'API). Le problème avec cette approche est que lorsque les valeurs changent fréquemment ou que des clés encombrent le catalogue, il est difficile de filtrer efficacement les ressources et de créer des rapports associés.
Libellés et tags
Pour les ressources, les libellés peuvent être utilisés comme des annotations qu'il est possible d'interroger. Cependant, ils ne peuvent pas être utilisés pour définir des conditions dans le cadre de vos stratégies. Les tags permettent d'autoriser ou de refuser des règles de manière conditionnelle selon qu'une ressource possède un tag spécifique ou non, grâce à un contrôle ultraprécis sur les règles. Pour en savoir plus, consultez la présentation des tags.
Utiliser des libellés sur Compute Engine
Vous pouvez appliquer des libellés aux ressources Compute Engine suivantes :
- Instances de machines virtuelles (VM)
- Images
- Disques persistants
- Instantanés de disque persistant
Vous pouvez également utiliser des libellés sur les composants Google Cloud liés, tels que les suivants :
- Buckets Cloud Storage
- Ressources réseau :
Par exemple, vous pouvez ajouter les libellés suivants en tant que paires clé/valeur à vos ressources :
{ "labels": { "vmrole": "webserver", "environment": "production", "location": "west",... } }
Créer des ressources avec des libellés
Lors de la création d'une ressource, vous pouvez appliquer des libellés à cette ressource.
Console
Accédez à la page de ressources que vous souhaitez créer.
- Pour les instances de VM, accédez à la page Créer une instance.
- Pour les disques, consultez la section Créer un disque.
- Pour les instantanés, consultez la section Créer un instantané.
- Pour les images, consultez la section Créer une image.
Sous Libellés, cliquez sur
Ajouter un libellé.Poursuivez le processus de création.
gcloud
Pour ajouter un libellé, utilisez la sous-commande create
avec l'option --labels
. Vous pouvez ajouter des libellés aux ressources Compute Engine à l'aide des commandes gcloud
suivantes :
- Pour les instances de VM, utilisez la commande
gcloud compute instances create
. - Pour les instantanés, exécutez la commande
gcloud compute disks snapshot
. - Pour les images, utilisez la commande
gcloud compute images create
. - Pour les disques, utilisez la commande
gcloud compute disks create
.
Exemple
gcloud compute instances create ... \ --labels webserver=backend,media=images
API
Dans l'API, lors de la requête POST
pour l'ajout d'une nouvelle ressource, ajoutez la propriété labels
dans le corps de la requête afin d'appliquer des libellés à la nouvelle ressource.
- Pour les instances de VM, utilisez la méthode
instances.insert()
. - Pour les instantanés, utilisez la méthode
disks.createSnapshot()
. - Pour les images, utilisez la méthode
images.insert()
. - Pour les disques, utilisez la méthode
disks.insert()
.
Par exemple, l'extrait suivant envoie une requête POST
pour créer une instance de VM avec les libellés webserver:backend
et media:images
:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances { "name": "myVM", "machineType": "zones/us-central1-f/machineTypes/custom-2-15360-ext", ..., "labels": { "webserver": "backend", "media": "images" } }
Ajouter ou mettre à jour les libellés de ressources existantes
Vous pouvez ajouter des libellés ou mettre à jour des libellés existants sur des ressources à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine. Pour ajouter ou mettre à jour des libellés de règles de transfert, utilisez gcloud CLI ou l'API Compute Engine.
Console
Accédez à la page correspondant à la ressource pour laquelle vous souhaitez ajouter des libellés.
- Pour les instances, accédez à la page instances de VM.
- Pour les instantanés, accédez à la page Instantanés.
- Pour les images, accédez à Images.
- Pour les disques, accédez à Disques.
- Pour les adresses IP externes statiques, accédez à Adresses IP externes.
- Pour les tunnels VPN, accédez à VPN.
Cochez les cases à côté des ressources auxquelles ajouter un libellé.
Pour développer la colonne des libellés, cliquez sur Afficher le panneau d'informations.
Dans le panneau, sélectionnez Libellés.
Pour ajouter des libellés, cliquez sur
Ajouter un libellé et ajoutez la paire clé-valeur.Pour mettre à jour des libellés, sélectionnez les libellés existants et modifiez leurs valeurs.
Enregistrez les modifications.
gcloud
Pour ajouter ou modifier un libellé, utilisez la sous-commande update
avec l'option --update-labels
. Vous pouvez mettre à jour les libellés des ressources Compute Engine à l'aide des commandes gcloud
suivantes :
- Pour les instances de VM, utilisez la commande
gcloud compute instances update
. - Pour les instantanés, exécutez la commande
gcloud compute snapshots update
. - Pour les images, utilisez la commande
gcloud compute images update
. - Pour les disques, utilisez la commande
gcloud compute disks update
. - Pour les règles de transfert, utilisez la commande
gcloud compute forwarding-rules update
. - Pour les adresses IP externes statiques, utilisez la commande
gcloud beta compute addresses update
. - Pour les tunnels VPN, utilisez la commande
gcloud beta compute vpn-tunnels update
.
Exemple
gcloud compute disks update example-disk \ --update-labels backend=webserver,media=images
Si vous fournissez une clé d'étiquette qui existe déjà, la Google Cloud CLI met à jour la clé existante avec la nouvelle valeur d'étiquette. S'il s'agit d'une nouvelle clé, l'outil l'ajoute à la liste des libellés.
API
Pour ajouter ou mettre à jour des libellés, envoyez une requête POST
à la méthode setLabels
de la ressource appropriée avec la dernière empreinte et la liste complète des libellés à appliquer.
- Pour les instances de VM, utilisez la méthode
instances.setLabels()
. - Pour les instantanés, utilisez la méthode
snapshots.setLabels()
. - Pour les images, utilisez la méthode
images.setLabels()
. - Pour les disques, utilisez la méthode
disks.setLabels()
. - Pour les règles de transfert, utilisez la méthode
forwardingRules.setLabels()
. - Pour les adresses IP externes statiques régionales, utilisez la méthode en version bêta
addresses.setLabels()
. - Pour les adresses IP externes statiques globales, utilisez la méthode en version bêta
globalAddresses.setLabels()
. - Pour les tunnels VPN, utilisez la méthode en version bêta
vpnTunnels.setLabels()
.
Comme pour les métadonnées et les tags, si la ressource comprend des libellés existants à conserver, vous devez inclure ces libellés dans la requête, ainsi que les nouveaux libellés à ajouter.
Par exemple, l'extrait suivant envoie une requête POST
à une instance de VM pour définir les libellés environment:test
et an-existing-tag:yes
:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { "environment": "test", "an-existing-tag": "yes" }, "labelFingerprint": "42WmSpB8rSM=" }
Afficher les libellés
Vous pouvez afficher les libellés des ressources à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine. Pour afficher les libellés des règles de transfert, utilisez gcloud CLI ou l'API Compute Engine.
Console
Accédez à la page des ressources.
- Pour les instances, accédez à la page instances de VM.
- Pour les instantanés, accédez à la page Instantanés.
- Pour les images, accédez à Images.
- Pour les disques, accédez à Disques.
- Pour les adresses IP externes statiques, accédez à Adresses IP externes.
- Pour les tunnels VPN, accédez à VPN.
Cliquez sur la ressource pour en afficher les détails.
Recherchez les libellés.
gcloud
Pour afficher les libellés, utilisez la sous-commande describe
. Vous pouvez afficher les libellés des ressources Compute Engine à l'aide des commandes gcloud
suivantes :
- Pour les instances de VM, utilisez la commande
gcloud compute instances describe
. - Pour les instantanés, exécutez la commande
gcloud compute snapshots describe
. - Pour les images, utilisez la commande
gcloud compute images describe
. - Pour les disques, utilisez la commande
gcloud compute disks describe
. - Pour les règles de transfert, utilisez la commande
gcloud compute forwarding-rules describe
. - Pour les adresses IP externes statiques, utilisez la commande
gcloud beta compute addresses describe
. - Pour les tunnels VPN, utilisez la commande
gcloud beta compute vpn-gateways describe
.
Exemple
gcloud compute disks describe example-disk
Le résultat contient les libellés suivants :
... id: '5047929990219134234' kind: compute#disk labelFingerprint: GHZ1Un209U=0 labels: environment: dev department: finance ...
API
Pour récupérer des libellés, envoyez une requête GET
à la ressource suivante :
- Pour les instances de VM, utilisez la méthode
instances.get()
. - Pour les instantanés, utilisez la méthode
snapshots.get()
. - Pour les images, utilisez la méthode
images.get()
. - Pour les disques, utilisez la méthode
disks.get()
. - Pour les règles de transfert, utilisez la méthode
forwardingRules.get()
. - Pour les adresses IP externes statiques régionales, utilisez la méthode en version bêta
addresses.get()
. - Pour les adresses IP externes statiques globales, utilisez la méthode en version bêta
globalAddresses.get()
. - Pour les tunnels VPN, utilisez la méthode en version bêta
vpnTunnels.get()
.
Par exemple, l'extrait suivant envoie une requête GET
pour récupérer les libellés d'une instance de VM :
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Remplacez l'élément suivant :
- PROJECT_ID : ID du projet
- ZONE : zone de la VM
- VM_NAME : nom de la VM
Obtenir l'empreinte d'un libellé pour les requêtes API
Lors de la mise à jour ou de l'ajout de libellés dans l'API, vous devez fournir les empreintes les plus récentes des libellés avec votre requête, afin d'éviter tout conflit avec d'autres requêtes. Une empreinte n'est requise que pour les requêtes API. La console Google Cloud et Google Cloud CLI ne nécessitent pas d'empreinte.
Pour obtenir la dernière version de labelsFingerprint
, envoyez une requête GET
aux ressources suivantes :
- Pour les instances de VM, utilisez la méthode
instances.get()
. - Pour les instantanés, utilisez la méthode
snapshots.get()
. - Pour les images, utilisez la méthode
images.get()
. - Pour les disques, utilisez la méthode
disks.get()
. - Pour les règles de transfert, utilisez la méthode
forwardingRules.get()
. - Pour les adresses IP externes statiques régionales, utilisez la méthode en version bêta
addresses.get()
. - Pour les adresses IP externes statiques globales, utilisez la méthode en version bêta
globalAddresses.get()
. - Pour les tunnels VPN, utilisez la méthode en version bêta
vpnTunnels.get()
.
Par exemple, l'extrait suivant renvoie labelsFingerprint
pour une instance de VM :
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
La réponse contient la propriété labelFingerprint
:
200 OK { "kind": "compute#instance", "id": "4392196237934605253", "creationTimestamp": "2015-09-15T14:05:16.475-07:00", "zone": "https://content.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f", "status": "RUNNING", ... "labels": { "environment": "test" }, "labelFingerprint": "p1ty_9HoBk0=" }
Supprimer un libellé
Vous pouvez supprimer des libellés des ressources à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine. Pour supprimer des libellés des règles de transfert, utilisez gcloud CLI ou l'API Compute Engine.
Console
Accédez à la page correspondant à la ressource pour laquelle vous souhaitez ajouter des libellés.
- Pour les instances, accédez à la page instances de VM.
- Pour les instantanés, accédez à la page Instantanés.
- Pour les images, accédez à Images.
- Pour les disques, accédez à Disques.
- Pour les adresses IP externes statiques, accédez à Adresses IP externes.
- Pour les tunnels VPN, accédez à VPN.
Cochez les cases à côté des ressources pour lesquelles vous souhaitez supprimer des libellés.
Pour développer la colonne des libellés, cliquez sur Afficher le panneau d'informations.
Pour supprimer un libellé, cliquez sur
Supprimer.Enregistrez les modifications.
gcloud
Pour ajouter ou modifier un libellé, utilisez la sous-commande update
avec l'option --remove-labels
. Vous pouvez supprimer les libellés des ressources Compute Engine à l'aide des commandes gcloud
suivantes :
- Pour les instances de VM, utilisez la commande
gcloud compute instances update
. - Pour les instantanés, exécutez la commande
gcloud compute snapshots update
. - Pour les images, utilisez la commande
gcloud compute images update
. - Pour les disques, utilisez la commande
gcloud compute disks update
. - Pour les règles de transfert, utilisez la commande
gcloud compute forwarding-rules update
. - Pour les adresses IP externes statiques, utilisez la commande
gcloud beta compute addresses update
. - Pour les tunnels VPN, utilisez la commande
gcloud beta compute vpn-tunnels update
.
Exemple
gcloud compute disks update example-disk \ --remove-labels backend,media
API
Pour supprimer des libellés, envoyez une requête POST
à la méthode setLabels
de la ressource suivante en utilisant la dernière empreinte et la liste complète des libellés à appliquer :
- Pour les instances de VM, utilisez la méthode
instances.setLabels()
. - Pour les instantanés, utilisez la méthode
snapshots.setLabels()
. - Pour les images, utilisez la méthode
images.setLabels()
. - Pour les disques, utilisez la méthode
disks.setLabels()
. - Pour les règles de transfert, utilisez la méthode
forwardingRules.setLabels()
. - Pour les adresses IP externes statiques régionales, utilisez la méthode en version bêta
addresses.setLabels()
. - Pour les adresses IP externes statiques globales, utilisez la méthode en version bêta
globalAddresses.setLabels()
. - Pour les tunnels VPN, utilisez la méthode en version bêta
vpnTunnels.setLabels()
.
Fournissez les valeurs labelsFingerprint
actuelles et une liste vide de libellés pour supprimer tous les libellés, ou fournissez une liste de libellés à conserver (en omettant les libellés à supprimer). Par exemple, l'extrait suivant supprime tous les libellés de la VM :
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { }, "labelFingerprint": "42WmSpB8rSM=" }
Filtrer les résultats de recherche à l'aide de libellés
Vous pouvez effectuer des recherches parmi vos ressources et filtrer les résultats par libellé à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine. Pour filtrer les règles de transfert par libellé, utilisez gcloud CLI ou l'API Compute Engine.
Console
Accédez à la page correspondant à la ressource pour laquelle vous souhaitez obtenir une liste filtrée de ressources.
- Pour les instances, accédez à la page instances de VM.
- Pour les instantanés, accédez à la page Instantanés.
- Pour les images, accédez à Images.
- Pour les disques, accédez à Disques.
- Pour les adresses IP externes statiques, accédez à Adresses IP externes.
- Pour les tunnels VPN, accédez à VPN.
Si vous y êtes invité(e), sélectionnez votre projet et cliquez sur Continuer.
Dans la barre de recherche, saisissez la clé, la valeur ou la paire clé/valeur. Les résultats incluent les correspondances partielles.
Par exemple, pour n'afficher que les ressources associées au libellé
env:dev
, vous pouvez saisir l'un des éléments suivants :- Saisissez la clé :
env
- Saisissez la valeur :
dev
- Saisissez la paire clé-valeur :
env:dev
- Saisissez la clé :
gcloud
Pour effectuer un filtrage en fonction des libellés, utilisez la sous-commande list
des ressources suivantes avec l'indicateur --filter
:
- Pour les instances de VM, utilisez la commande
gcloud compute instances list
. - Pour les instantanés, exécutez la commande
gcloud compute snapshots list
. - Pour les images, utilisez la commande
gcloud compute images list
. - Pour les disques, utilisez la commande
gcloud compute disks list
. - Pour les règles de transfert, utilisez la commande
gcloud compute forwarding-rules list
. - Pour les adresses IP externes statiques, utilisez la commande
gcloud beta compute addresses list
. - Pour les tunnels VPN, utilisez la commande
gcloud beta compute vpn-tunnels list
.
La valeur de l'option --filter
doit être au format labels.KEY=VALUE
. Par exemple, si vous souhaitez effectuer un filtrage à l'aide d'un libellé assorti de la clé env
et de la valeur dev
, vous pouvez exécuter la commande suivante :
gcloud compute instances list \ --filter labels.env=dev
Pour en savoir plus sur la syntaxe du filtrage dans gcloud CLI, consultez la documentation de gcloud topic filters
.
API
Pour filtrer des ressources, envoyez une requête GET
à la méthode list
des ressources suivantes et incluez le champ de filtre :
- Pour les instances de VM, utilisez la méthode
instances.list()
. - Pour les instantanés, utilisez la méthode
snapshots.list()
. - Pour les images, utilisez la méthode
images.list()
. - Pour les disques, utilisez la méthode
disks.list()
. - Pour les règles de transfert, utilisez la méthode
forwardingRules.list()
. - Pour les adresses IP externes statiques régionales, utilisez la méthode en version bêta
addresses.list()
. - Pour les adresses IP externes statiques globales, utilisez la méthode en version bêta
globalAddresses.list()
. - Pour les tunnels VPN, utilisez la méthode en version bêta
vpnTunnels.list()
.
Par exemple, pour répertorier toutes les VM du projet myproject
et de la zone us-central1-a
avec un libellé dont la paire clé-valeur est env:dev
, définissez le champ de filtre sur labels.env:dev
dans votre requête list
. Si vous incluez le champ de filtre en tant que paramètre de chaîne de requête, utilisez la valeur de paramètre encodée au format URL filter=labels.env%3Adev
:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?filter=labels.env%3Adev
Pour en savoir plus, consultez la documentation concernant le paramètre filter
dans la documentation de référence de l'API Compute Engine.
Relation entre les libellés d'instance et les tags réseau
Auparavant, libellés et tags étaient liés. Par exemple, si vous ajoutiez un libellé webserver:test
à une VM, Compute Engine ajoutait automatiquement un tag webserver
à la VM.
Désormais, libellés et tags sont séparés. Si vous créez un libellé sur une VM, Compute Engine ne crée pas de tag pour cette VM. Si vous souhaitez créer un tag sur une VM, vous devez le créer manuellement.
Pour savoir comment créer des tags, consultez la page Tags réseau.
Étape suivante
- Apprenez à ajouter des tags réseau.
- Découvrez le filtrage.