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 API listReferrers.

Lorsque vous utilisez cette méthode API, 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, cette API vous permet d'afficher facilement la liste des groupes d'instances auxquels une instance de VM appartient.

Avant de commencer

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 l'API.

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