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 REST, 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, use o REST para visualizar uma lista de grupos de instâncias a que uma instância de VM pertence.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

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 referenciadores usando REST.

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