À propos des métadonnées de VM


Chaque instance de machine virtuelle (VM) stocke ses métadonnées sur un serveur de métadonnées. Votre VM a automatiquement accès à l'API du serveur de métadonnées, sans aucune autorisation supplémentaire. Les métadonnées sont stockées sous forme de paires clé/valeur.

Ce document fournit une présentation des métadonnées de VM et explique les types et les propriétés de ces métadonnées.

Utiliser les métadonnées des VM

Les sections suivantes décrivent quelques cas dans lesquels vous pouvez gérer vos VM à l'aide d'entrées de métadonnées.

Scripts de démarrage et d'arrêt

Le serveur de métadonnées est particulièrement intéressant lorsqu'il est utilisé en combinaison avec des scripts de démarrage et d'arrêt. En effet, il vous permet d'obtenir des informations uniques sur une VM de manière automatisée, sans autorisation supplémentaire.

Par exemple, vous pouvez écrire un script de démarrage qui récupère la paire clé/valeur de métadonnées pour l'adresse IP externe d'une VM et vous servir de cette adresse IP dans votre script pour configurer une base de données. Les clés de métadonnées prédéfinies de Compute Engine étant les mêmes sur toutes les VM, vous pouvez réutiliser votre script sans avoir à le mettre à jour pour chacune d'entre elles. Cela vous permet de créer un code moins fragile pour vos applications.

Maintenance de l'hôte

Le serveur de métadonnées fournit des informations sur les options de programmation des VM via l'entrée du répertoire de métadonnées scheduling/ et l'attribut maintenance-event. Vous pouvez utiliser ces valeurs de métadonnées pour être informé lorsqu'un événement de maintenance est sur le point de se produire afin de pouvoir préparer votre environnement en conséquence. Pour en savoir plus, consultez la page Recevoir des notifications de migration à chaud.

Attributs d'invité

Les attributs d'invité sont un type spécifique de métadonnées personnalisées auxquelles vos applications peuvent accéder en écriture alors qu'elles sont en cours d'exécution sur vos VM. N'utilisez les attributs d'invité que pour les cas d'utilisation nécessitant de petites quantités de données qui ne changent pas fréquemment. Pour en savoir plus sur les attributs d'invité, consultez Définir et interroger des attributs d'invité.

Points à noter concernant la sécurité des métadonnées

Lorsque vous effectuez une requête pour obtenir des informations auprès du serveur de métadonnées, votre requête et la réponse de métadonnées qui s'en suit ne quittent jamais l'hôte physique exécutant la VM.

Néanmoins, tout processus autorisé à interroger l'URL des métadonnées peut accéder à l'ensemble des valeurs du serveur de métadonnées. Cela comprend toutes les valeurs de métadonnées personnalisées que vous écrivez sur le serveur. Nous vous recommandons d'être prudent lorsque vous écrivez des valeurs sensibles sur le serveur de métadonnées ou lorsque vous exécutez des processus tiers.

Clés de métadonnées prédéfinies et personnalisées

Chaque entrée de métadonnées est stockée sur le serveur de métadonnées en tant que paire clé/valeur. Les clés de métadonnées sont sensibles à la casse. Vos clés peuvent être des clés de métadonnées prédéfinies ou personnalisées.

Clés de métadonnées prédéfinies

Les clés de métadonnées prédéfinies sont des clés de métadonnées créées par Compute Engine. Lorsque vous créez une VM, Compute Engine définit automatiquement les valeurs de métadonnées de certaines de ces clés sur cette VM (par exemple, l'ID d'instance de VM ou l'ID de projet). Pour les clés prédéfinies dans lesquelles Compute Engine ne définit pas automatiquement de valeur, vous pouvez choisir parmi un ensemble de valeurs disponibles en fonction de la configuration système. Par exemple, pour activer OS Login pour une VM, vous pouvez définir la valeur de la clé prédéfinie enable-oslogin sur TRUE pour cette VM. Pour désactiver OS Login pour cette VM, vous pouvez mettre à jour la valeur de la clé vers FALSE.Vous ne pouvez mettre à jour que les valeurs de ces clés, pas les clés elles-mêmes.

Pour en savoir plus sur les clés de métadonnées prédéfinies et la liste de ces clés, consultez la page Clés de métadonnées prédéfinies.

Clés de métadonnées personnalisées

Les métadonnées personnalisées vous permettent de créer et d'utiliser vos propres paires clé/valeur de métadonnées sur une VM individuelle ou sur un projet. Vous pouvez ajouter de nouvelles clés de métadonnées personnalisées, mettre à jour les valeurs de vos clés existantes et supprimer toutes les entrées de métadonnées personnalisées lorsque vous n'en avez pas besoin. La définition de métadonnées personnalisées est utile pour transmettre des valeurs arbitraires aux VM d'un projet. Cette opération permet également de créer des scripts de démarrage et d'arrêt.

Pour savoir comment ajouter, mettre à jour ou supprimer des métadonnées personnalisées pour vos VM, consultez la page Configurer des métadonnées personnalisées.

Types de métadonnées

Les entrées de métadonnées de VM peuvent fournir des informations spécifiques à une VM individuelle ou à un projet. Vos métadonnées sont divisées en métadonnées de projet, zonales et d'instance, en fonction du champ d'application auquel vous avez défini les métadonnées.

Métadonnées de projet

Les métadonnées d'un projet sont définies au niveau du projet et fournissent des informations qui s'appliquent à toutes les VM d'un projet. Lorsque vous définissez ces métadonnées, les entrées de métadonnées se propagent à toutes les VM de ce projet.

Vous pouvez utiliser des clés de métadonnées prédéfinies et personnalisées pour définir des métadonnées de projet. Apprenez-en plus sur les clés de métadonnées de projet prédéfinies et sur la définition des métadonnées de projet personnalisées.

Métadonnées zonales

Les métadonnées zonales sont définies au niveau d'une zone au sein d'un projet et fournissent des informations sur les VM de cette zone spécifique dans ce projet. Lorsque vous définissez des métadonnées zonales, les entrées de métadonnées se propagent à toutes les VM de cette zone configurée dans ce projet. Par rapport aux métadonnées de projet, les métadonnées zonales vous aident à isoler les pannes et offrent une plus grande fiabilité.

Compute Engine ne fournit aucune clé prédéfinie pour les métadonnées zonales. Vous devez créer vos propres clés de métadonnées personnalisées pour définir des métadonnées zonales. Découvrez comment définir des métadonnées zonales personnalisées.

Métadonnées de l'instance

Les métadonnées d'instance fournissent des informations sur une instance de VM spécifique. Vous définissez les métadonnées d'instance séparément pour chaque instance de VM.

Vous pouvez utiliser des clés de métadonnées prédéfinies et personnalisées pour définir des métadonnées d'instance. Apprenez-en plus sur les clés de métadonnées d'instance prédéfinies et sur la définition de métadonnées d'instance personnalisées.

Organisation des métadonnées

Compute Engine stocke et gère les clés et les valeurs de métadonnées pour vos VM et projets dans des listes de répertoires. Selon le type de métadonnées, Compute Engine stocke les entrées de métadonnées dans l'un des répertoires suivants :

Type de métadonnées Répertoire
  • Métadonnées de projet
  • Métadonnées zonales
http://metadata.google.internal/computeMetadata/v1/project/
Métadonnées de l'instance
http://metadata.google.internal/computeMetadata/v1/instance/

Chaque répertoire stocke les entrées de métadonnées sous la forme de paires clé/valeur. Certaines entrées de métadonnées correspondent à des répertoires contenant d'autres clés de métadonnées. Les entrées de métadonnées fonctionnant comme des répertoires sont indiquées par une barre oblique finale (/) dans le nom de la clé de métadonnées. Par exemple, /project/attributes/ est un répertoire du répertoire project/ qui contient d'autres clés de métadonnées. Pour créer votre propre liste de répertoires de métadonnées, vous devez utiliser une barre oblique finale (/) dans le nom de la clé de métadonnées lorsque vous créez votre entrée de métadonnées personnalisée.

Le projet et ses entrées de métadonnées zonales sont stockés dans le même répertoire project/. Si vous définissez des valeurs différentes pour les mêmes clés de métadonnées personnalisées pour les VM au niveau du projet et au niveau zonal, les valeurs des métadonnées zonales du projet pour ces clés sont prioritaires sur les métadonnées à l'échelle du projet dans les zones respectives.

  • Si vous ajoutez une valeur de métadonnées zonale de projet pour une clé de métadonnées ayant déjà une valeur de projet, Compute Engine remplace la valeur de projet pour les VM de la zone spécifiée et met à jour le répertoire /project avec la valeur zonale du projet.
  • Si vous ajoutez une valeur de métadonnées à l'échelle du projet pour une clé de métadonnées ayant déjà une valeur de métadonnées zonale, rien ne change. Compute Engine conserve la valeur des métadonnées zonales dans le répertoire /project de la zone spécifique.
  • Si vous ne spécifiez pas de valeur de métadonnées zonale de projet pour une clé de métadonnées personnalisée dans une zone spécifique, mais que la clé a une valeur de métadonnées de projet, vos VM continueront d'avoir les valeurs de métadonnées de projet dans ces zones.

Par exemple, supposons que vous définissez une paire de métadonnées key-1=value-1 à l'échelle du projet. Supposons également que vous définissez une paire de métadonnées zonales key-1=zonal-value-1 uniquement pour la zone us-central1-a. Toutes les VM de la zone us-central1-a de votre projet héritent de key-1=zonal-value1 en tant que paire de métadonnées. La paire de métadonnées reste key-1=value-1 pour toutes les VM des autres zones dans lesquelles vous n'avez pas défini de métadonnées zonales pour key-1.

Étape suivante