Como visualizar referenciadores para instâncias de VM

Se você quiser visualizar as relações entre as instâncias de VM e outros recursos do Compute Engine, use o método da API listReferrers.

Quando você usa esse método, o Compute Engine retorna uma lista de referências que descrevem:

  • o recurso de origem: recurso que aponta para o recurso de destino;
  • o recurso de destino: recurso em questão;
  • o tipo de referência: relacionamento entre os dois recursos.

Por exemplo, é possível usar essa API para exibir uma lista de grupos de instâncias que uma instância de VM pertence.

Antes de começar

Limitações

  • Só é possível listar relações entre instâncias de VM e grupos de instâncias, ambos gerenciados e não gerenciados.
  • Só é possível listar responsáveis pela indicação usando a API.

Como listar um único referenciador

Um referenciador é um recurso que se refere a outro recurso. Para instâncias de VM, um referenciador comum é um grupo de instâncias.

Por exemplo, digamos que você tenha uma instância de VM chamada example-ig-a1 na zona us-central1-a. A instância de VM é membro de um grupo de instâncias chamado example-ig na mesma zona, conforme mostrado no diagrama abaixo:

Uma instância de máquina virtual é membro de um grupo de instâncias
            na mesma zona.

Para ver essa relação, chame o método listReferrers em example-ig-a1 com a seguinte solicitação HTTP:

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

O servidor retorna a resposta de lista padrão contendo os seguintes itens:

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

Nesse caso, o target é example-ig-a1, que é um MEMBER_OF do referrer, o grupo example-ig instance.

Como listar referenciadores múltiplos

Se um recurso tiver mais de um referenciador, a resposta retornará uma lista de todos os referenciadores para o recurso de destino. Se uma instância pertencer a dois grupos de instâncias, a resposta conterá os dois grupos.

Se uma instância de máquina virtual for membro de dois grupos de instâncias,
            a resposta conterá os dois grupos.

Por exemplo, a resposta a seguir indica que a instância chamada example-instance-a2 pertence a dois grupos de instâncias, example-ig e 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
  }
]

Como listar referenciadores de escopo cruzado

O método listReferrers também retorna informações sobre referenciadores que existem dentro de outros escopos, como outras regiões ou zonas. Por exemplo, digamos que você tenha uma instância de VM que pertence a um grupo de instâncias gerenciadas regional (MIG regional, na sigla em inglês):

Na região us-central1, a instância new-instance-a3 na
            zona us-central1-a é membro do
            grupo de instâncias regionais de exemplo.

Você chama o método listReferrers que segmenta esta instância com a seguinte solicitação HTTP:

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

O servidor retorna uma resposta de lista padrão contendo os seguintes itens:

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

A resposta mostra o grupo de instâncias regionais na lista de referenciadores.

Como listar referenciadores para todos os recursos dentro de uma coleção

Com o caractere curinga (-), é possível solicitar uma lista de todos os referenciadores de todas as instâncias de VM em uma zona específica. A solicitação pode ser feita com uma solicitação HTTP semelhante a esta:

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

O servidor retorna uma resposta que contém uma lista de instâncias de VM na zona e dos referenciadores da instância. Por exemplo:

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

A seguir