Ver e manter metadados de VMs

Todas as máquinas virtuais (VMs) armazenam os respetivos metadados num servidor de metadados. Pode adicionar, remover e ver metadados nas suas VMs isoladas do Google Distributed Cloud (GDC) como pares de chave-valor (KVPs).

Pode usar os KVPs de metadados para armazenar informações que podem ajudar a identificar a sua VM, como o nome de um servidor. Pode aceder a metadados a partir do exterior e do interior da VM, e usar os metadados para transmitir informações entre diferentes sistemas.

Antes de começar

Para usar os comandos da gdcloud interface de linhas de comando (CLI), certifique-se de que transferiu, instalou e configurou a CLI gdcloud. Todos os comandos para a nuvem distribuída usam a CLI gdcloud ou kubectl e requerem um ambiente de sistema operativo (SO).

Obtenha o caminho do ficheiro kubeconfig

Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:

  1. Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.

  2. Use o caminho para o ficheiro kubeconfig do servidor da API de gestão para substituir MANAGEMENT_API_SERVER nestas instruções.

Peça autorizações e acesso

Para realizar as tarefas indicadas nesta página, tem de ter a função de administrador da máquina virtual do projeto. Siga os passos para validar ou pedir ao administrador de IAM do projeto que lhe atribua a função de administrador de máquinas virtuais do projeto (project-vm-admin) no espaço de nomes do projeto onde a VM reside.

Para operações de VM que usam a consola do GDC ou a CLI gdcloud, peça ao administrador de IAM do projeto para lhe atribuir a função de administrador de máquinas virtuais do projeto e a função de visualizador do projeto (project-viewer).

Adicione ou remova metadados

Esta secção descreve como adicionar e remover metadados de instâncias de VM existentes. Pode usar metadados para armazenar pares de chave-valor arbitrários que quer adicionar às suas VMs. Por exemplo, pode querer adicionar e gerir os seus próprios metadados personalizados para identificar diferentes ambientes, como test e production.

Adicione metadados

gdcloud

  • Adicione metadados a uma instância de VM específica. Tem de incluir um dos indicadores --metadata ou --metadata-from-file no comando. Também pode adicionar ambos os indicadores no mesmo comando, se for necessário para o seu exemplo de utilização:

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

    Substitua o seguinte:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside. 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 ficheiro local.

API

Para adicionar metadados com a API, tem de usar um token STS.

  1. Use a CLI gcloud para gerar um símbolo STS:

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

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

    O resultado é semelhante ao seguinte:

    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 o seguinte:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL da consola da organização for https://console.example-org.com, o ORG_SUFFIX é example-org.com.
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside. Este valor é opcional.
    • STS_TOKEN: o token STS gerado a partir da CLI gcloud.

Remova metadados

gdcloud

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

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

    Substitua o seguinte:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside. Este valor é opcional.
    • KEY: a string da chave para o par de metadados.

API

Para remover metadados com a API, tem de usar um token STS.

  1. Use a CLI gcloud para gerar um símbolo STS:

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

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

    O resultado é semelhante ao seguinte:

    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 o seguinte:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL da consola da organização for https://console.example-org.com, o ORG_SUFFIX é example-org.com.
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside.
    • STS_TOKEN: o token STS gerado a partir da CLI gcloud.

Consultar metadados

gdcloud

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

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

    Substitua o seguinte:

    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside. Este valor é opcional.

    O resultado é semelhante ao seguinte:

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

API

  1. Use a CLI gcloud para gerar um símbolo STS:

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

    Substitua ORG_SUFFIX pelo sufixo da organização.

    O resultado é semelhante ao seguinte:

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

    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 o seguinte:

    • ORG_SUFFIX: o sufixo da organização. Por exemplo, se o URL da consola da organização for https://console.example-org.com, o ORG_SUFFIX é example-org.com
    • VM_NAME: o nome da instância de VM.
    • PROJECT: o nome do projeto onde a VM reside. Este valor é opcional.
    • STS_TOKEN: o token STS gerado a partir da CLI gcloud.

    O resultado é semelhante ao seguinte:

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

Consultar metadados a partir de uma VM

Pode consultar os metadados da VM a partir da VM, sem ter de estabelecer ligação ao servidor de metadados. Para tal, use o comando curl e anexe a chave de metadados aplicável ao URL de metadados.

Consultar um único KVP

Consultar um único KVP a partir 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 quer consultar.

Consultar todos os pares CVP com valores

Consultar todos os pares de chave-valor a partir de uma VM com chaves-valores:

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 a partir de uma VM sem chaves-valores:

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