Ver referentes a instancias de máquina virtual


Si quieres ver las relaciones entre las instancias de VM y otros recursos de Compute Engine, usa el método de la API REST listReferrers.

Cuando usas REST, Compute Engine devuelve una lista de referencias que describen lo siguiente:

  • El recurso de origen: el recurso que apunta al recurso de destino
  • El recurso de destino: el recurso en cuestión
  • El tipo de referencia: la relación entre los dos recursos

Por ejemplo, puedes usar REST para ver fácilmente una lista de los grupos de instancias a los que pertenece una instancia de VM.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Limitaciones

  • Solo puede enumerar las relaciones entre las instancias de VM y los grupos de instancias (tanto gestionados como no gestionados).
  • Solo puede enumerar los referentes mediante REST.

Listar una sola referente

Un referente es un recurso que hace referencia a otro recurso. En el caso de las instancias de VM, un referente habitual es un grupo de instancias.

Por ejemplo, supongamos que tienes una instancia de VM llamada example-ig-a1 en la zona us-central1-a. La instancia de VM es miembro de un grupo de instancias llamado example-ig en la misma zona, tal como se muestra en el diagrama de abajo:

Una instancia de máquina virtual es miembro de un grupo de instancias de la misma zona.

Para ver esta relación, llama al método listReferrers en example-ig-a1 con la siguiente solicitud HTTP:

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

El servidor devuelve una respuesta de lista estándar que contiene los siguientes elementos:

"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
  }
]

En este caso, el target es example-ig-a1, que es un MEMBER_OF el referrer, el grupo example-ig instance.

Lista de varios referentes

Si un recurso tiene más de un referente, la respuesta devuelve una lista de todos los referentes del recurso de destino. Si una instancia pertenece a dos grupos de instancias, la respuesta contiene ambos grupos.

Si una instancia de máquina virtual pertenece a dos grupos de instancias, la respuesta contendrá ambos grupos.

Por ejemplo, la siguiente respuesta indica que la instancia llamada example-instance-a2 pertenece a dos grupos de instancias, example-ig y 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
  }
]

Listar referentes entre ámbitos

El método listReferrers también devuelve información sobre los referentes que existen en otros ámbitos, como otras regiones o zonas. Por ejemplo, supongamos que tienes una instancia de VM que pertenece a un grupo de instancias gestionado regional (MIG regional):

En la región us-central1, la instancia new-instance-a3 de la zona us-central1-a es miembro del grupo de instancias regional example-rmig.

Llamas al método listReferrers orientado a esta instancia con la siguiente solicitud HTTP:

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

El servidor devuelve una respuesta de lista estándar que contiene los siguientes elementos:

"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
  }
]

En la respuesta se muestra el grupo de instancias regional en la lista de referentes.

Mostrar los referentes de todos los recursos de una colección

Si usas el carácter comodín (-), puedes solicitar una lista de todos los referentes de todas las instancias de VM de una zona específica. La solicitud se puede hacer con una solicitud HTTP similar a la siguiente:

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

El servidor devuelve una respuesta que contiene una lista de instancias de VM en la zona y referencias a la instancia. Por ejemplo:

"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
  }
]

Siguientes pasos