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 gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

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