Ver e manter metadados da VM

Cada máquina virtual (VM) armazena os metadados em um servidor de metadados. É possível adicionar, remover e visualizar metadados nas VMs de appliance isoladas do Google Distributed Cloud (GDC) como pares de valores-chave (KVPs, na sigla em inglês).

É possível usar os KVPs de metadados para armazenar informações que ajudam a identificar sua VM, como um nome de servidor. É possível acessar metadados de fora e de dentro da VM e usá-los para transmitir informações entre diferentes sistemas.

Antes de começar

Para usar os comandos da interface de linha de comando (CLI) gdcloud, verifique se você baixou, instalou e configurou a CLI gdcloud. Todos os comandos para o dispositivo isolado do GDC usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).

Extrair o caminho do arquivo kubeconfig

Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:

  1. Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.

  2. Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.

  3. Use o caminho para substituir MANAGEMENT_API_SERVER{"</var>"}} nestas instruções.

Solicitar permissões e acesso

Para executar as tarefas listadas nesta página, é preciso ter o papel de administrador de máquina virtual do projeto. Siga as etapas para verificar ou peça ao administrador do IAM do projeto para atribuir a você o papel de administrador de máquinas virtuais do projeto (project-vm-admin) no namespace do projeto em que a VM reside.

Para operações de VM usando o console do GDC ou a CLI gdcloud, peça ao administrador do IAM do projeto para atribuir a você os papéis de administrador de máquina virtual do projeto e leitor do projeto (project-viewer).

Adicionar ou remover metadados

Esta seção descreve como adicionar e remover metadados de instâncias de VM atuais. É possível usar metadados para armazenar pares de chave-valor arbitrários que você quer adicionar às VMs. Por exemplo, você pode adicionar e gerenciar seus próprios metadados personalizados para identificar diferentes ambientes, como test e production.

Adicionar metadados

gdcloud

  • Adicione metadados a uma instância de VM específica. É necessário incluir uma das flags --metadata ou --metadata-from-file no comando. Você também pode adicionar as duas flags no mesmo comando, se necessário para seu caso de uso:

    gdcloud compute instances add-metadata VM_NAME
        [--project=PROJECT]
        [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]]
        [--metadata-from-file=KEY=LOCAL_FILE_PATH,]
    

    Substitua:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada. Este valor é opcional.
    • KEY: a chave do par de metadados.
    • KEY_VALUE: o valor do par de metadados.
    • LOCAL_FILE_PATH: o valor do par de metadados de um arquivo local.

API

Para adicionar metadados com a API, use um token STS.

  1. Use a CLI gdcloud para gerar um token STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Substitua ORG_SUFFIX pelo sufixo da organização. Por exemplo, se o URL do console da organização for https://console.example-org.com, o ORG_SUFFIX será example-org.com

    O resultado será assim:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Adicione metadados a uma instância de VM específica:

    curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \
    -H "Authorization: Bearer STS_TOKEN \
    -H "Content-Type: application/json" \
    -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"
    

    Substitua:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL do console da organização for https://console.example-org.com, o ORG_SUFFIX será example-org.com.
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada. Este valor é opcional.
    • STS_TOKEN: o token STS gerado pela CLI gdcloud.

Remover metadados

gdcloud

  • Remova metadados de uma instância de VM específica. Se você quiser remover todas as entradas de metadados, use a flag --all. Use uma das flags --all ou --keys no comando:

    gdcloud compute instances remove-metadata VM_NAME
        [--project=PROJECT]
        [--keys=KEY,[KEY,...]]
        [--all]
    

    Substitua:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada. Este valor é opcional.
    • KEY: a string de chave do par de metadados.

API

Para remover metadados com a API, use um token STS.

  1. Use a CLI gdcloud para gerar um token STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Substitua ORG_SUFFIX pelo sufixo da organização. Por exemplo, se o URL do console da organização for https://console.example-org.com, o ORG_SUFFIX será example-org.com.

    O resultado será assim:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Remova metadados de uma instância de VM específica:

    curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \
    -H "Authorization: Bearer STS_TOKEN" \
    -H "Content-Type: application/json" \
    -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"
    

    Substitua:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL do console da organização for https://console.example-org.com, o ORG_SUFFIX será example-org.com.
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada.
    • STS_TOKEN: o token STS gerado pela CLI gdcloud.

Consultar metadados

gdcloud

  • Liste todos os metadados da instância de VM para ver os detalhes:

    gdcloud compute instances describe VM_NAME
        [--project=PROJECT]
    

    Substitua:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada. Este valor é opcional.

    O resultado será assim:

    ...
    metadata:
      items:
      - key: Key-1
        value: val12
      - key: key2
        value:
          lksdjfhk-user1
    

API

  1. Use a CLI gdcloud para gerar um token STS:

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Substitua ORG_SUFFIX pelo sufixo da organização.

    O resultado será assim:

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Liste todos os metadados da instância de VM para ver os detalhes:

    curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/vm/VM_NAME" \
    -H "Authorization: Bearer STS_TOKEN" \
    -H "Content-Type: application/json"
    

    Substitua:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL do console da organização for https://console.example-org.com, o ORG_SUFFIX será example-org.com.
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto em que a VM está localizada. Este valor é opcional.
    • STS_TOKEN: o token STS gerado pela CLI gdcloud.

    O resultado será assim:

    ...
    metadata:
      items:
      - key: Key-1
        value: val12
      - key: key2
        value:
          lksdjfhk-user1
    

Consultar metadados de dentro de uma VM

É possível consultar os metadados da VM de dentro dela, sem precisar se conectar ao servidor de metadados. Para isso, use o comando curl e adicione a chave de metadados aplicável ao URL de metadados.

Consultar um único KVP

Consultar um único KVP de dentro de uma VM:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" -H "Metadata-Flavor: Google"

Substitua KEY pela chave do par de metadados que você quer consultar.

Consultar todos os pares de chave-valor com valores

Consulte todos os pares de chave-valor de uma VM com chaves-valor:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" -H "Metadata-Flavor: Google"

Consultar todas as chaves de metadados sem valores

Consultar todas as chaves de metadados em uma VM sem chaves-valor:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" -H "Metadata-Flavor: Google"