Todas as máquinas virtuais (VMs) armazenam os respetivos metadados num servidor de metadados. Pode adicionar, remover e ver metadados nas VMs do dispositivo isolado (air-gapped) 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 o dispositivo isolado do GDC 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:
Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para substituir
MANAGEMENT_API_SERVER{"</var>"}}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
--metadataou--metadata-from-fileno 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.
Use a CLI gcloud para gerar um símbolo
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Substitua
ORG_SUFFIXpelo sufixo da organização. Por exemplo, se o URL da consola da organização forhttps://console.example-org.com, oORG_SUFFIXéexample-org.comO resultado é semelhante ao seguinte:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQAdicione 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 forhttps://console.example-org.com, oORG_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 tokenSTSgerado 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--allou--keysno 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.
Use a CLI gcloud para gerar um símbolo
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Substitua
ORG_SUFFIXpelo sufixo da organização. Por exemplo, se o URL da consola da organização forhttps://console.example-org.com, oORG_SUFFIXéexample-org.com.O resultado é semelhante ao seguinte:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQRemova 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 forhttps://console.example-org.com, oORG_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 tokenSTSgerado 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
Use a CLI gcloud para gerar um símbolo
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Substitua
ORG_SUFFIXpelo sufixo da organização.O resultado é semelhante ao seguinte:
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQListe 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 forhttps://console.example-org.com, oORG_SUFFIXéexample-org.comVM_NAME: o nome da instância de VM.PROJECT: o nome do projeto onde a VM reside. Este valor é opcional.STS_TOKEN: o tokenSTSgerado 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"