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:
Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
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
.
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 forhttps://console.example-org.com
, oORG_SUFFIX
seráexample-org.com
O resultado será assim:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
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 forhttps://console.example-org.com
, oORG_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 tokenSTS
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
.
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 forhttps://console.example-org.com
, oORG_SUFFIX
seráexample-org.com
.O resultado será assim:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
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 forhttps://console.example-org.com
, oORG_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 tokenSTS
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
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
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 forhttps://console.example-org.com
, oORG_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 tokenSTS
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"