Conferir a localização física de uma instância do Compute Engine

Neste documento, explicamos como ver a localização física das instâncias do Compute Engine em execução na sua organização Google Cloud .

Depois de criar e iniciar instâncias de computação, é possível conferir em qual host físico cada instância de computação é executada em uma zona. Use a localização física das instâncias de computação no cluster para fazer o seguinte:

  • Minimizar a latência de rede: ajuste o design do aplicativo ou da carga de trabalho para executar jobs sensíveis à latência em instâncias de computação que estejam mais próximas umas das outras.

  • Melhorar a confiabilidade da carga de trabalho: distribua instâncias de computação em hosts físicos separados para limitar o impacto de erros de host no aplicativo.

Para verificar quais instâncias de computação são executadas no seu projeto, confira uma lista de instâncias de computação.

Limitações

É possível conferir o ID do cluster, bloco, subbloco e host das instâncias de computação que atendem a um ou mais dos seguintes requisitos:

Se uma instância de computação não atender a nenhum dos requisitos anteriores, você poderá ver o ID do host depois de expô-lo, conforme descrito neste documento.

Entender a topologia da instância de computação

Cada instância de computação é executada em um servidor físico, um host, que existe em um bloco de servidores. Cada bloco pertence a um cluster em uma zona. Ao visualizar os detalhes das instâncias de computação que atendem a requisitos específicos, é possível entender a topologia delas em relação a outras instâncias de computação que atendem aos mesmos requisitos.

O Compute Engine expõe os seguintes subcampos no campo physicalHostTopology de cada instância de computação. Quanto mais subcampos duas instâncias de computação em execução compartilharem, mais próximas elas estarão.

  • Cluster (cluster): o nome global do cluster em que a instância de computação está. Um cluster é um agrupamento lógico de alto nível de vários hosts, que podem abranger vários blocos e trabalhar juntos como um único pool de recursos.

  • Bloco (block): o ID específico da organização do bloco em que sua instância de computação existe. Um bloco é um conjunto de vários hosts agrupados.

  • Sub-bloco (subBlock): o ID específico da organização do sub-bloco em que a instância de computação está localizada. Um sub-bloco é uma subdivisão física em um bloco, agrupando hosts em um único gabinete físico.

  • Host (host): o ID específico da organização ou do projeto do host em que a instância de computação é executada. O ID do host muda da seguinte maneira:

    • Se a instância de computação especificar uma política de posicionamento compacto ou uma política de carga de trabalho, o ID do host será específico do seu projeto.

    • Se a instância de computação especificar uma série de máquinas compatível ou você expor o ID do host, o ID do host será específico para sua organização.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma 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 selecionando uma das seguintes opções:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.

    gcloud

    1. Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • REST

    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 CLI do Google Cloud.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para receber as permissões necessárias para verificar a topologia das suas instâncias de computação, peça ao administrador para conceder a você o papel do IAM de Administrador do Compute (roles/compute.admin) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para verificar a topologia das instâncias de computação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para verificar a topologia das suas instâncias de computação:

  • Para conferir os detalhes de uma instância de computação: compute.instances.get
  • Para ver uma lista de instâncias de computação: compute.instances.list
  • Para expor o ID do host ao criar uma instância de computação:
    • compute.instances.create no projeto
    • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Utilizar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
    • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
    • Atribuir uma rede legada à VM: compute.networks.use no projeto
    • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
    • Atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto
    • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Definir os metadados da instância da VM: compute.instances.setMetadata no projeto
    • Definir tags para a VM: compute.instances.setTags na VM
    • Definir rótulos para a VM: compute.instances.setLabels na VM
    • Definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
    • Criar um disco para a VM: compute.disks.create no projeto
    • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
    • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco
  • Para expor o ID do host ao criar um modelo de instância: compute.instanceTemplates.create
  • Para mostrar ou ocultar o ID do host em uma instância de computação atual: compute.instances.update

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Expor ou ocultar o ID do host

A menos que uma instância de computação atenda a requisitos específicos, o ID do host dela será ocultado por padrão. É possível expor o ID do host ao criar ou atualizar instâncias de computação. Ao conferir os detalhes das instâncias de computação, você pode ver os IDs de host específicos da sua organização Google Cloud . Não é possível ver os IDs do bloco, subbloco ou cluster das instâncias de computação.

Para mostrar ou ocultar o ID do host em uma instância de computação, use um dos seguintes métodos:

Se você quiser evitar a exposição do ID do host em um ou mais projetos da sua organização, crie uma restrição personalizada. Essa restrição é útil, por exemplo, quando você quer executar cargas de trabalho sensíveis à segurança. Para mais informações, consulte Restrições personalizadas.

Expor ou ocultar o ID do host em uma instância de computação

É possível expor ou ocultar o ID do host em uma instância de computação sem reiniciar. Se você desativar a configuração que expõe o ID do host para uma instância de computação que mostra o ID do host por padrão, uma das seguintes situações vai ocorrer:

  • Se a instância de computação especificar uma política de posicionamento compacto ou uma política de carga de trabalho, o ID do host específico do projeto e as informações de localização física relacionadas serão exibidos.

  • Se a instância de computação usar um tipo de máquina H4D ou A3 High com oito GPUs (ou gerações posteriores), o Compute Engine vai ignorar a solicitação.

Para mostrar ou ocultar o ID do host de uma instância de computação, selecione uma das seguintes opções:

gcloud

Para mostrar ou ocultar o ID do host de uma instância de computação, use o comando gcloud compute instances update com uma destas flags:

  • Para expor o ID do host, inclua a flag --expose-host-topology:

    gcloud compute instances update INSTANCE_NAME \
        --expose-host-topology \
        --zone=ZONE
    
  • Para ocultar o ID do host, inclua a flag --no-expose-host-topology:

    gcloud compute instances update INSTANCE_NAME \
        --no-expose-host-topology \
        --zone=ZONE
    

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.

  • ZONE: a zona em que a instância de computação está.

REST

  1. Para conferir as propriedades de uma instância de computação, faça uma solicitação GET para o método instances.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a instância de computação.

    • ZONE: a zona em que a instância de computação está.

    • INSTANCE_NAME: o nome da instância de computação.

  2. Para atualizar uma instância de computação e expor ou ocultar o ID do host, faça uma solicitação PUT ao método instances.update. No corpo da solicitação, use a saída da solicitação GET da etapa anterior. No entanto, no campo scheduling, é necessário adicionar o campo exposeHostTopology para expor ou ocultar o ID do host. Se o campo scheduling não existir na saída da solicitação, adicione-o também.

    A solicitação PUT é semelhante a esta:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=REFRESH
    
    {
      "scheduling": {
        "exposeHostTopology": EXPOSE_HOST_ID
      },
      ...
    }
    

    Substitua EXPOSE_HOST_ID por um dos seguintes valores:

    • Para expor o ID do host: true

    • Para ocultar o ID do host: false

Expor o ID do host em uma nova instância de computação

Para expor o ID do host enquanto você cria uma instância de computação, selecione uma das seguintes opções:

gcloud

Para expor o ID do host ao criar uma instância de computação, use o comando gcloud compute instances create com a flag --expose-host-topology:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --expose-host-topology \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.

  • MACHINE_TYPE: o tipo de máquina que você quer que sua instância de computação use.

  • ZONE: a zona em que você quer criar a instância de computação.

REST

Para expor o ID do host ao criar uma instância de computação, faça uma solicitação POST para o método instances.insert. No corpo da solicitação, inclua o campo scheduling.exposeHostTopology definido como true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "exposeHostTopology": true
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a instância de computação será criada.

  • ZONE: a zona em que você quer criar a instância de computação.

  • INSTANCE_NAME: o nome da instância de computação.

  • MACHINE_TYPE: o tipo de máquina que você quer que sua instância de computação use.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas do SO.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Expor o ID do host em novas instâncias de computação em massa

Para expor o ID do host ao criar instâncias de computação em massa, selecione uma das seguintes opções:

gcloud

Para expor o ID do host ao criar instâncias de computação em massa, execute o comando gcloud compute instances create-bulk com a flag --expose-host-topology.

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar a exposição do ID do host, execute o seguinte comando:

gcloud compute instances create-bulk \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --expose-host-topology \
    --zone=ZONE

Substitua:

  • COUNT: o número de instâncias de computação a serem criadas.

  • MACHINE_TYPE: o tipo de máquina que você quer que suas instâncias de computação usem.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância de computação, use uma sequência de caracteres hash (#). Por exemplo, usar instance-# para o padrão de nome gera instâncias de computação com nomes que começam com instance-1, instance-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • ZONE: a zona em que você quer criar instâncias de computação em massa.

REST

Para expor o ID do host ao criar instâncias de computação em massa, faça uma solicitação POST para o método instances.bulkInsert. No corpo da solicitação, inclua o campo instanceProperties.scheduling.exposeHostTopology definido como true.

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar a exposição do ID do host, faça uma solicitação POST da seguinte maneira:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que as instâncias de computação serão criadas.

  • ZONE: a zona em que você quer criar as instâncias de computação.

  • COUNT: o número de instâncias de computação a serem criadas.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância de computação, use uma sequência de caracteres hash (#). Por exemplo, usar instance-# para o padrão de nome gera instâncias de computação com nomes que começam com instance-1, instance-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • MACHINE_TYPE: o tipo de máquina que você quer que suas instâncias de computação usem.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas do SO.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Expor o ID do host em um novo modelo de instância

Depois de criar um modelo de instância que especifica a exposição do ID do host, é possível usar o modelo para fazer o seguinte:

Para expor o ID do host ao criar um modelo de instância, selecione uma das seguintes opções:

gcloud

Para expor o ID do host ao criar um modelo de instância, use o comando gcloud compute instance-templates create com a flag --expose-host-topology.

Por exemplo, use o comando a seguir para criar um modelo de instância regional. Se você quiser criar um modelo de instância global, use o mesmo comando sem a flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --expose-host-topology \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • REGION: a região em que o modelo de instância será criado.

  • MACHINE_TYPE: o tipo de máquina que você quer que suas instâncias de computação usem.

REST

Para expor o ID do host ao criar um modelo de instância, faça uma solicitação POST para um dos seguintes métodos. No corpo da solicitação, inclua o campo properties.scheduling.exposeHostTopology definido como true.

Por exemplo, para criar um modelo de instância regional que exponha o ID do host, faça uma solicitação POST da seguinte maneira:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o modelo de instância será criado.

  • REGION: a região em que você quer criar o modelo de instância.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • IMAGE_PROJECT: o projeto que contém a imagem, como debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas do SO.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • MACHINE_TYPE: o tipo de máquina que você quer que suas instâncias de computação usem.

Verificar o local físico da instância de computação

Só é possível ver a localização física das instâncias de computação em execução se elas atenderem a requisitos específicos ou se você expor os IDs de host.

Para verificar o local físico das instâncias de computação em execução na sua organização, use um dos seguintes métodos:

Verificar a localização física usando o console do Google Cloud , a CLI gcloud ou a REST

Para conferir o local físico de várias instâncias de computação de uma só vez, use a API REST. Caso contrário, selecione uma destas opções:

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância de computação que você quer consultar. Uma página com os detalhes da instância vai aparecer, e a guia Detalhes será selecionada.

  3. Na seção Informações básicas, verifique o valor do campo Host físico.

gcloud

Para conferir o local físico de uma instância de computação em execução, use o comando gcloud compute instances describe com a flag --flatten=resourceStatus.physicalHostTopology:

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.

  • ZONE: a zona em que a instância de computação está.

A saída será semelhante a uma das seguintes:

  • Se você puder ver o ID do cluster, do bloco, do subbloco e do host de uma instância de computação, a saída será semelhante a esta:

    ---
    block: 3e3056e23cf91a5cb4a8621b6a52c100
    cluster: europe-west1-cluster-jfhb
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: 0fc09525cbd5abd734342893ca1c083f
    
  • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

    ---
    block: null
    cluster: null
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: null
    

REST

Para conferir a localização física das suas instâncias de computação em execução, faça uma das seguintes solicitações GET. Ao fazer uma solicitação, inclua o parâmetro de consulta fields e limite a saída aos campos name, machineType e physicalHostTopology de uma instância de computação. Você também precisa incluir o parâmetro de consulta filter e limitar os resultados a instâncias de computação em execução.

  • Para conferir uma lista das suas instâncias em todas as zonas: método instances.aggregatedList

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • Para conferir uma lista das suas instâncias em uma zona específica: método instances.list

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    

Substitua:

  • PROJECT_ID: o ID do projeto em que as instâncias de computação existem.

  • ZONE: a zona em que as instâncias de computação estão.

A saída será semelhante a uma destas:

  • Se você puder ver o ID do cluster, do bloco, do subbloco e do host de uma instância de computação, a saída será semelhante a esta. No exemplo a seguir, as instâncias de computação vm-01 e vm-02 estão localizadas no mesmo bloco.

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": "0fc09525cbd5abd734342893ca1c083f"
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": "1fc18636cbd4abd623553784ca2c174e"
            }
          }
        },
        ...
      ]
    }
    
  • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": null
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": null
            }
          }
        },
        ...
      ]
    }
    

Se quiser refinar sua lista de instâncias de computação, edite a expressão de filtro no parâmetro de consulta filter.

Verificar o local físico consultando a chave de metadados

Para conferir o local físico de uma instância de computação em execução consultando a chave de metadados physical_host_topology, selecione uma das seguintes opções:

Instâncias do Linux

  1. Conecte-se à instância do Linux.

  2. Consulte a chave de metadados physical_host_topology usando curl:

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    A saída será semelhante a uma das seguintes:

    • Se você puder ver o ID do cluster, do bloco, do sub-bloco e do host de uma instância de computação, a saída será semelhante a esta:

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

Instâncias do Windows

  1. Conecte-se à instância do Windows.

  2. Consulte a chave de metadados physical_host_topology usando o comando Invoke-RestMethod:

    PS C:\> 
    $value = (Invoke-RestMethod `
            -Headers @{'Metadata-Flavor' = 'Google'} `
            -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
    $value
    

    A saída será semelhante a uma das seguintes:

    • Se você puder ver o ID do cluster, do bloco, do sub-bloco e do host de uma instância de computação, a saída será semelhante a esta:

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

A seguir