Afficher les référents associés à des instances de VM


Si vous souhaitez afficher les relations entre les instances de VM et les autres ressources Compute Engine, appelez la méthode de l'API REST listReferrers.

Lorsque vous utilisez REST, Compute Engine renvoie une liste de références décrivant les éléments suivants :

  • Ressource source : ressource qui pointe vers la ressource cible
  • Ressource cible : ressource en question
  • Type de référence : relation entre les deux ressources

Par exemple, vous pouvez utiliser REST pour afficher facilement la liste des groupes d'instances auxquels une instance de VM appartient.

Avant de commencer

  • 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 :

    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.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Limites

  • Vous ne pouvez répertorier que les relations entre des instances de VM et des groupes d'instances (gérés et non gérés).
  • Vous ne pouvez répertorier les référents qu'à l'aide de REST.

Répertorier un seul référent

Un référent est une ressource qui fait référence à une autre ressource. Pour les instances de VM, un référent commun est un groupe d'instances.

Par exemple, supposons que vous disposiez d'une instance de VM nommée example-ig-a1 dans la zone us-central1-a. L'instance de VM appartient à un groupe d'instances appelé example-ig dans la même zone, comme illustré dans le schéma ci-dessous :

Une instance de machine virtuelle appartient à un groupe d'instances se trouvant dans la même zone.

Pour voir cette relation, appelez la méthode listReferrers sur example-ig-a1 avec la requête HTTP suivante :

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1/referrers

Le serveur renvoie une réponse avec une liste standard contenant les éléments suivants :

"items": [
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  }
]

Dans ce cas, la cible (target) est example-ig-a1, qui est membre (MEMBER_OF) du référent (referrer), le groupe example-ig instance.

Répertorier plusieurs référents

Si une ressource comporte plusieurs référents, la réponse renvoie la liste de tous les référents pour la ressource cible. Si une instance appartient à deux groupes d'instances, la réponse contient les deux groupes d'instances.

Si une instance de machine virtuelle appartient à deux groupes d'instances, la réponse contient les deux groupes d'instances.

Par exemple, la réponse suivante indique que l'instance nommée example-instance-a2 appartient à deux groupes d'instances, example-ig et example-ig-2 :

"items": [
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
  }
]

Répertorier les référents associés à plusieurs champs d'application

La méthode listReferrers renvoie également des informations sur les référents qui existent dans d'autres champs d'application, telles que d'autres régions ou zones. Par exemple, supposons que vous disposiez d'une instance de VM appartenant à un groupe d'instances géré régional (MIG régional) :

Dans la région us-central1, l'instance new-instance-a3 de la zone us-central1-a appartient au groupe d'instances régional example-rmig.

Pour appeler la méthode listReferrers ciblant cette instance, exécutez la requête HTTP suivante :

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3/referrers

Le serveur renvoie une réponse avec une liste standard contenant les éléments suivants :

"items": [
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig
  }
]

La réponse contient le groupe d'instances régional dans la liste des référents.

Répertorier les référents associés à toutes les ressources d'une collection

Vous pouvez vous servir du caractère générique (-) pour demander la liste de tous les référents associés à l'ensemble des instances de VM dans une zone spécifique. La requête peut être envoyée via une requête HTTP semblable à la suivante :

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/-/referrers

Le serveur renvoie une réponse contenant une liste d'instances de VM dans la zone et des références à ces instances. Exemple :

"items": [
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
  },
  {
    "target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
    "referenceType": MEMBER_OF,
    "referrer": https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig
  }
]

Étape suivante