À 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 présente les métadonnées de VM et explique les types et les propriétés de métadonnées de VM.

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 la page 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 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 sur 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 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 et d'instance, en fonction du type d'informations qu'elles fournissent.

Métadonnées du projet

Les métadonnées du projet fournissent des informations sur le projet. Les métadonnées de projet sont également divisées entre les types suivants, en fonction du champ d'application défini pour vos métadonnées de projet :

  • Les métadonnées à l'échelle du projet sont des métadonnées de projet que vous définissez avec un champ d'application sur le projet. Vous définissez ces métadonnées au niveau du projet et elles 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 à l'échelle du projet. Apprenez-en plus sur les clés de métadonnées de projet prédéfinies et découvrez comment définir des métadonnées personnalisées à l'échelle du projet.

  • Les métadonnées zonales du projet (bêta) sont des métadonnées de projet que vous définissez avec un champ d'application zonal dans le projet. Les métadonnées que vous définissez ne se propagent qu'aux VM de la zone configurée dans ce projet. Les métadonnées zonales du projet vous aident à isoler les pannes et à améliorer la fiabilité. Vous pouvez également utiliser les métadonnées zonales du projet pour remplacer les valeurs à l'échelle du projet pour toutes les clés existantes et utiliser des valeurs spécifiques à la zone.

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

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 individuelle.

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 découvrez comment définir des métadonnées d'instance personnalisées.

Organisation des métadonnées

Compute Engine stocke et gère les clés et valeurs de métadonnées de 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 Annuaire
  • Métadonnées à l'échelle du projet
  • Métadonnées zonales du projet

http://metadata.google.internal/computeMetadata/v1/project/
Métadonnées de l'instance

http://metadata.google.internal/computeMetadata/v1/instance/

Chaque répertoire stocke des 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 qui fonctionnent 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 à l'échelle du projet, Compute Engine remplace la valeur à l'échelle du 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 zonale de projet, rien ne change. Compute Engine conserve la valeur zonale du projet dans le répertoire /project de la zone spécifique.
  • Si vous ne spécifiez pas de valeur zonale de projet pour une clé de métadonnées personnalisée dans une zone spécifique, mais que la clé a une valeur à l'échelle du projet, vos VM continueront d'avoir les valeurs définies à l'échelle du 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 de projet 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 défini aucune métadonnée zonale de projet pour key-1.

Étape suivante