Cada máquina virtual (VM) armazena os metadados em diretórios em um servidor de metadados. O acesso da VM à API do servidor de metadados é fornecido automaticamente, sem qualquer autorização extra. Use os métodos explicados nas seguintes seções deste documento para visualizar e consultar os valores de metadados da VM:
- Consulte metadados de maneira programática dentro de uma VM
- Ver metadados personalizados das suas VMs
Se você encontrar erros ao acessar o servidor de metadados, consulte Solução de problemas de acesso ao servidor de metadados.
Antes de começar
- Para VMs do Windows Server, use o
PowerShell 3.0 ou posterior.
Recomendamos que você use
ctrl+v
para colar os blocos de código copiados. - Revise os conceitos básicos de como os metadados de VM para o Compute Engine são definidos, categorizados e organizados. Para mais informações, consulte Sobre metadados da VM.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da 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 da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) na VM ou no projeto -
Se as VMs usam contas de serviço:
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço ou no projeto -
Para ver os metadados personalizados do projeto:
compute.projects.get
-
Para conferir metadados personalizados zonais:
compute.instanceSettings.get
-
Para ver metadados personalizados de uma instância de VM:
compute.instances.get
-
Se as VMs usarem contas de serviço:
iam.serviceAccounts.actAs
- consultar uma única entrada de metadados;
- consultar uma listagem de diretórios de metadados;
- Consulte alterações de metadados usando o recurso
wait-for-change
- Em todas as VMs, é possível consultar o servidor de metadados usando
o endpoint HTTP (
http://metadata.google.internal/computeMetadata/v1
). Para VMs protegidas, é possível consultar o servidor de metadados usando uma das seguintes opções:
- O endpoint HTTP:
http://metadata.google.internal/computeMetadata/v1
- O endpoint https: (
https://metadata.google.internal/computeMetadata/v1
). Este endpoint HTTPS é disponível em Pré-lançamento. Para ver o formato para consulta do ponto de extremidade https, consulte Metadados de consulta usando o endpoint do servidor de metadados HTTPS.
- O endpoint HTTP:
- Endpoint http:
http://metadata.google.internal/computeMetadata/v1
http://169.254.169.254/computeMetadata/v1
http://metadata.goog/computeMetadata/v1
- Endpoint https (pré-lançamento):
Esse é o único URL aceito durante o estágio de pré-lançamento.https://metadata.google.internal/computeMetadata/v1
- Conecte-se à VM do Linux.
Na VM do Linux, use a ferramenta
curl
para fazer uma consulta. Para consultar uma entrada de metadados de instância de VM ou projeto, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Por exemplo, para consultar a imagem de inicialização da VM, execute a seguinte consulta:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/image" -H "Metadata-Flavor: Google"
O resultado será assim:
projects/rhel-cloud/global/images/rhel-8-v20210122
-
Para visualizar a chave de metadados
- Conecte-se à VM do Windows:
Na VM do Windows, use o comando
Invoke-RestMethod
para fazer uma consulta. Para consultar uma entrada de metadados de instância de VM ou projeto, execute o seguinte comando:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Por exemplo, para consultar a imagem de inicialização da VM, execute a seguinte consulta:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/image") $value
O resultado será assim:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
-
Para visualizar a chave de metadados
Conecte-se à VM do Linux.
Para consultar uma instância de VM ou um diretório de metadados do projeto, na VM do Linux, execute o seguinte comando:
curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/" -H "Metadata-Flavor: Google"
Substitua
PATH_TO_METADATA_DIRECTORY
pelo caminho para a instância de VM ou o diretório de metadados do projeto para o qual você quer consultar as listagens. Por exemplo:-
Para conferir a entrada do diretório de metadados do projeto
attributes
, o caminho a ser especificado éproject/attributes/
. -
Para acessar a entrada de diretório de metadados da instância de VM
disks
, o caminho a ser especificado éinstance/disks/
.
Por exemplo, considere a entrada
disks/
, que é um diretório de discos anexado à VM. Para consultar a entrada dedisks/
, siga estas etapas:Execute o comando
curl
ferramenta no diretório de discos.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
O resultado será assim:
0/ 1/ 2/
Se você quiser mais informações sobre o diretório
0/
do disco, consulte o URL específico desse diretório:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H "Metadata-Flavor: Google"
O resultado será assim:
device-name index mode type
Em seguida, para consultar o tipo de disco (
type
) para discos0/
, execute:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type" -H "Metadata-Flavor: Google"
O resultado será assim:
PERSISTENT
-
Para conferir a entrada do diretório de metadados do projeto
Conecte-se à VM do Windows:
Para consultar uma instância de VM ou um diretório de metadados do projeto, na VM do Windows, execute o seguinte comando:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/") $value
Substitua
PATH_TO_METADATA_DIRECTORY
pelo caminho para a instância de VM ou o diretório de metadados do projeto para o qual você quer consultar as listagens. Por exemplo:-
Para conferir a entrada do diretório de metadados do projeto
attributes
, o caminho a ser especificado éproject/attributes/
. -
Para acessar a entrada de diretório de metadados da instância de VM
disks
, o caminho a ser especificado éinstance/disks/
.
Por exemplo, considere a entrada
disks/
, que é um diretório de discos anexado à VM. Para consultar a entrada dedisks/
, siga estas etapas:Execute o
Invoke-RestMethod
comando no diretório de discos.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/") $value
O resultado será assim:
0/ 1/ 2/
Se você quiser mais informações sobre o diretório
0/
do disco, consulte o URL específico desse diretório:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/") $value
O resultado será assim:
device-name index mode type
Em seguida, para consultar o tipo de disco (
type
) para discos0/
, execute:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type") $value
O resultado será assim:
PERSISTENT
-
Para conferir a entrada do diretório de metadados do projeto
Conecte-se à VM do Linux.
Na VM do Linux, use a ferramenta
curl
para fazer uma consulta. Para consultar recursivamente as listagens de uma instância de VM ou de um diretório de metadados do projeto, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true" -H "Metadata-Flavor: Google"
Substitua
PATH_TO_METADATA_DIRECTORY
pelo caminho para a instância de VM ou o diretório de metadados do projeto para o qual você quer consultar as listagens. Por exemplo:-
Para conferir a entrada do diretório de metadados do projeto
attributes
, o caminho a ser especificado éproject/attributes/
. -
Para acessar a entrada de diretório de metadados da instância de VM
disks
, o caminho a ser especificado éinstance/disks/
.
Por exemplo, o comando a seguir consulta de maneira recursiva as listagens de metadados da instância para o diretório
disks/
.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true" -H "Metadata-Flavor: Google"
O resultado será assim:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Por padrão, o conteúdo recursivo é retornado no formato JSON. Se desejar retornar esses conteúdos no formato de texto, anexe o parâmetro de consulta
alt=text
:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text" -H "Metadata-Flavor: Google"
O resultado será assim:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
-
Para conferir a entrada do diretório de metadados do projeto
Conecte-se à VM do Windows:
Na VM do Windows, use o comando
Invoke-RestMethod
para fazer uma consulta. Para consultar recursivamente as listagens de uma instância de VM ou de um diretório de metadados do projeto, execute o seguinte comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true") $valueSubstitua
PATH_TO_METADATA_DIRECTORY
pelo caminho para a instância de VM ou o diretório de metadados do projeto para o qual você quer consultar as listagens. Por exemplo:-
Para conferir a entrada do diretório de metadados do projeto
attributes
, o caminho a ser especificado éproject/attributes/
. -
Para acessar a entrada de diretório de metadados da instância de VM
disks
, o caminho a ser especificado éinstance/disks/
.
Por exemplo, o comando a seguir consulta de maneira recursiva as listagens de metadados da instância para o diretório
disks/
.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true") $value
O resultado será assim:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Por padrão, o conteúdo recursivo é retornado no formato JSON. Se desejar retornar esses conteúdos no formato de texto, anexe o parâmetro de consulta
alt=text
:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text") $value
O resultado será assim:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
-
Para conferir a entrada do diretório de metadados do projeto
- Conecte-se à VM do Linux.
Na VM do Linux, use a ferramenta
curl
para fazer uma consulta. Para alterar o formato dos dados da resposta da consulta para uma entrada de metadados do projeto ou de instância de VM, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Substitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
DATA_FORMAT
: o formato em que você quer os dados de resposta da consulta. Por exemplo,text
oujson
.
-
- Conecte-se à VM do Windows:
Na VM do Windows, use o comando
Invoke-RestMethod
para fazer uma consulta. Para alterar o formato dos dados da resposta da consulta para uma entrada de metadados do projeto ou de instância de VM, execute o seguinte comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT") $valueSubstitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
DATA_FORMAT
: o formato em que você quer os dados de resposta da consulta. Por exemplo,text
oujson
.
-
Só é possível executar uma solicitação
wait-for-change
em um endpoint de metadados ou de maneira recursiva no conteúdo de um diretório. Não é possível executar uma solicitaçãowait-for-change
em uma listagem de diretórios. Se você tentar fazer isso, o servidor de metadados falhará na solicitação e retornará um erro 400 Solicitação inválida.Não é possível executar uma solicitação
wait-for-change
para um token de conta de serviço. Se você tentar enviar uma solicitaçãowait-for-change
ao URL do token da conta de serviço, ela falhará imediatamente e retornará um erro 400 Solicitação inválida.- Conecte-se à VM do Linux.
Na VM do Linux, use a ferramenta
curl
para fazer uma consulta. Para executar uma solicitaçãowait-for-change
para uma instância de VM ou a entrada de metadados do projeto, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true" -H "Metadata-Flavor: Google"
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Depois que a chave de metadados especificada é alterada, a consulta retorna o novo valor.
-
Para visualizar a chave de metadados
- Conecte-se à VM do Windows:
Na VM do Windows, use o comando
Invoke-RestMethod
para fazer uma consulta. Para executar uma solicitaçãowait-for-change
em uma entrada de metadados de instância de VM ou de projeto, execute o seguinte comando:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true") $value
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Depois que a chave de metadados especificada é alterada, a consulta retorna o novo valor.
-
Para visualizar a chave de metadados
- Conecte-se à VM do Linux.
Faça uma solicitação para essa chave e imprima os cabeçalhos. Para fazer isso, use a ferramenta
curl
com a flag-v
: Para receber a ETag atual de uma entrada de metadados do projeto ou de uma instância de VM, execute o seguinte comando:curl -v "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Por exemplo, o comando a seguir recebe o valor atual da ETag para a chave de metadados da instância
tags
.user@myinst:~$ curl -v "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
O resultado será assim:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
-
Para visualizar a chave de metadados
Em seguida, use esse valor de ETag com o comando ferramenta
curl
na sua solicitaçãowait-for-change
: Para usar o valor da ETag para a solicitaçãowait-for-change
dos metadados de instância ou projeto, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Substitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
ETAG
: o valor da ETag da chave de metadados.
Neste exemplo, o comando a seguir usa o valor da ETag para a chave
tags
e consulta a entrada de metadados da instância.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e" -H "Metadata-Flavor: Google"
O servidor de metadados corresponde ao valor da ETag especificado e, se esse valor for alterado, a solicitação retornará com o novo conteúdo da chave de metadados.
-
- Conecte-se à VM do Windows:
Faça uma solicitação para essa chave e imprima os cabeçalhos. No Windows, use o
Invoke-WebRequest
comando. Para receber a ETag atual de uma entrada de metadados do projeto ou de uma instância de VM, execute o seguinte comando:$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY)
$value.Headers.ETag
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
Por exemplo, o comando a seguir recebe o valor atual da ETag para a chave de metadados da instância
tags
.PS C:> $value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/tags)
$value.Headers.ETag
O resultado será assim:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: / > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
-
Para visualizar a chave de metadados
Em seguida, use esse valor de ETag na solicitação
wait-for-change
. Para usar o valor da ETag para a solicitaçãowait-for-change
dos metadados de instância ou projeto, execute o seguinte comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG") $valueSubstitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
ETAG
: o valor da ETag da chave de metadados.
Neste exemplo, o comando a seguir usa o valor da ETag para a chave
tags
e consulta a entrada de metadados da instância.PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e") $valueO servidor de metadados corresponde ao valor da ETag especificado e, se esse valor for alterado, a solicitação retornará com o novo conteúdo da chave de metadados.
-
- Conecte-se à VM do Linux.
Na VM do Linux, use a ferramenta
curl
para fazer uma consulta. Para executar uma solicitaçãowait-for-change
com um valor de tempo limite para uma entrada de metadados da instância de VM ou de projeto, execute o seguinte comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Substitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
TIMEOUT
: o valor de tempo limite.
-
- Conecte-se à VM do Windows:
Na VM do Windows, use o comando
Invoke-RestMethod
para fazer uma consulta. Para executar uma solicitaçãowait-for-change
com um valor de tempo limite para uma entrada de metadados da instância de VM ou de projeto, execute o seguinte comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT") $valueSubstitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
TIMEOUT
: o valor de tempo limite.
-
É necessário acessar solicitar acesso à visualização do endpoint do servidor de metadados HTTPS.
Depois que o projeto for adicionado à lista de permissões, será possível criar a VM. A VM precisa atender aos seguintes requisitos:
- O ambiente convidado precisa estar em execução na VM.
- A VM precisa ser protegida. Isso ocorre porque o servidor de metadados HTTPS exige o uso da interface de firmware unificada e extensível (UEFI) e do módulo de plataforma confiável virtual (vTPM) para verificar certificados.
Conecte-se à VM do Linux.
Na VM do Linux, use o ferramenta
curl
para fazer uma consulta e especificar o certificado de identidade do cliente. Como opção, também é possível especificar o certificado raiz.curl "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" \ -E CLIENT_CERTIFICATE \ [--cacert ROOT_CERTIFICATE] \ -H "Metadata-Flavor: Google"
Substitua:
-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
CLIENT_CERTIFICATE
: o caminho para o certificado de identidade do cliente:/run/google-mds-mtls/client.key
.- Opcional:
ROOT_CERTIFICATE
: o caminho para o certificado raiz:/run/google-mds-mtls/root.crt
.
Por exemplo, para consultar a imagem de inicialização da VM, execute a seguinte consulta:
user@myinst:~$ curl "https://metadata.google.internal/computeMetadata/v1/instance/image" \ -E /run/google-mds-mtls/client.key \ -H "Metadata-Flavor: Google"
O resultado será assim:
projects/rhel-cloud/global/images/rhel-8-v20210122
Se uma mensagem de erro for exibida, consulte documentação de solução de problemas.
-
Conecte-se à VM do Windows:
Receba o certificado de identidade do cliente usando um dos seguintes comandos:
$cert = Get-PfxCertificate -FilePath "C:\ProgramData\Google\Compute Engine\mds-mtls-client.key.pfx"
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Issuer -like "google.internal" }
Na VM do Windows, use o comando
Invoke-RestMethod
e especifique o certificado de identidade do cliente para fazer uma consulta.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate CLIENT_CERTIFICATE ` -Uri "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Substitua:
CLIENT_CERTIFICATE
: o caminho para o certificado de identidade do cliente na VM. Essa é a variável$cert
definida na etapa anterior.-
Substitua
PATH_TO_METADATA_ENTRY
pelo caminho a instância de VM ou a chave de metadados do projeto em que você quer consultar o valor. Se a chave estiver em um subdiretório da instância ou do projeto, verifique se para incluir também o subdiretório. Por exemplo:-
Para visualizar a chave de metadados
project-id
, que é armazenada em metadados do projeto, especifiqueproject/project-id
. -
Para acessar a chave de metadados
image
, que está armazenada nos metadados de instância de VM, especifiqueinstance/image
. -
Para conferir o
enable-oslogin
, que pode ser armazenado no arquivo atribui um subdiretório dos metadados do projeto ou da instância de VM, especifiqueproject/attributes/enable-oslogin
ouinstance/attributes/enable-oslogin
, dependendo do caso de uso.
-
Para visualizar a chave de metadados
Por exemplo, para consultar a imagem de inicialização de uma VM do Windows Server 2019, execute: a seguinte consulta:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate $cert ` -Uri "https://metadata.google.internal/computeMetadata/v1/instance/image") $value
O resultado será assim:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
Todas as solicitações com o cabeçalho
X-Forwarded-For
são automaticamente rejeitadas pelo servidor de metadados. Isso ocorre porque, em geral, esse cabeçalho é usado para indicar que a solicitação foi enviada por proxy, ou seja, talvez ela não tenha sido feita por um usuário autorizado. Por motivos de segurança, todas as solicitações desse tipo são rejeitadas.Quando você usa o comando
curl
para recuperar metadados do servidor, observe que alguns caracteres codificados não são aceitos no caminho da solicitação. Caracteres codificados são aceitos apenas no caminho da consulta.Por exemplo, esta solicitação pode não funcionar:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/123456789-compute%40developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
Para que ela funcione, substitua o caractere codificado não aceito no caminho da solicitação (
%40
) pelo valor equivalente aceito (@
).curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/1234567898-compute@developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
A tabela a seguir resume os caracteres codificados que não são aceitos em um caminho de solicitação.
Caractere codificado Valor aceito %21 !
%24 $
%27 '
%28 (
%29 )
%2A *
%2C ,
%40 @
No Console do Google Cloud, acesse a página Metadados.
Na página Metadados, você verá uma lista de todos os metadados personalizados das entradas de metadados para seu projeto.
PROJECT_ID
: ID do projetoZONE
: a zona em que você quer visualizar os metadados zonais.PROJECT_ID
: ID do projetoZONE
: a zona em que você quer visualizar os metadados zonais.- No console do Google Cloud, acesse a página Instâncias de VMs.
Clique no nome da VM com os metadados que você quer ver.
Chaves SSH para esta VM. Na seção Segurança e acesso, veja o campo Chaves SSH.
Um valor
None
indica que não há chaves SSH armazenadas nos metadados da instância.Qualquer outro valor indica que há chaves SSH armazenadas nos metadados da instância.
Chaves SSH de um projeto. Na seção Segurança e acesso, veja o campo Bloquear chaves SSH do projeto inteiro.
Um valor de
On
indica que o valor da chave de metadadosblock-project-ssh-keys
éTRUE
nos metadados da instância.Um valor de
Off
indica que o valor da chave de metadadosblock-project-ssh-keys
éFALSE
ou que a chave não está definida.
Todos os outros metadados personalizados. Veja a seção Metadados personalizados. Você verá todos os valores e chaves de metadados personalizados, exceto metadados de chave SSH.
PROJECT_ID
: ID do projetoZONE
: é a zona em que a VM está localizadaVM_NAME
: o nome da VM- Saiba mais sobre os metadados da VM.
- Saiba como definir metadados personalizados.
- Saiba como definir e consultar atributos de convidado.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Os papéis e as permissões a seguir são necessários para ver metadados personalizados de fora da VM usando o console do Google Cloud, a CLI do Google Cloud ou REST. Se você estiver consultando os metadados de maneira programática de dentro da VM, precisará apenas dos papéis e das permissões para se conectar a ela.
Para ter as permissões necessárias para ver metadados personalizados de fora da VM, peça ao seu administrador para conceder a você os seguintes papéis do IAM:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para ver metadados personalizados de fora da VM. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para ver metadados personalizados de fora da VM:
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Consultar metadados programaticamente
É possível acessar todos os metadados consultando as entradas dos valores de metadados programaticamente em uma VM do Linux ou do Windows. Na sua VM, é possível consultar programaticamente seus valores de metadados de uma das seguintes maneiras usando ferramentas como
curl
no Linux ouInvoke-RestMethod
no Windows:Endpoints do servidor de metadados
Para consultar metadados de maneira programática em uma VM, você tem os seguintes endpoints do servidor de metadados:
A maioria dos exemplos neste documento usa o endpoint http. No entanto, é possível acessar todas as mesmas entradas de metadados, seja usando o endpoint https ou http.
Partes de uma solicitação de metadados
A tabela a seguir resume as principais partes de uma solicitação de consulta de metadados.
Componentes Descrição URLs raiz Todos os valores de metadados são definidos como subcaminhos abaixo do seguinte URL raiz:
Cabeçalho da solicitação Esse cabeçalho indica que a solicitação foi enviada com a intenção de recuperar valores de metadados, em vez de recuperar involuntariamente de uma fonte insegura e permite que o servidor de metadados retorne os dados solicitados. Se você não fornecer esse cabeçalho, o servidor de metadados negará sua solicitação.
Metadata-Flavor: Google
Consultar uma única entrada de metadados
Use os comandos a seguir para consultar uma única entrada de metadados.
Linux
Windows
Consultar as listagens do diretório de metadados
Use os comandos a seguir para consultar as listagens do diretório de metadados. As listagens de diretórios são entradas de metadados que contêm outras chaves de metadados. Todas as entradas de metadados com uma barra no final do nome são listagens de diretórios.
Linux
Windows
A entrada
disks/
é um diretório de discos anexado à VM. Para consultar a entrada de discos, siga estas etapas:Consultar as listagens de diretórios de maneira recursiva
Se você quiser retornar todo o conteúdo em um diretório, use o parâmetro de consulta
recursive=true
com a sua solicitação:Linux
Windows
Formatar a saída de consulta
Por padrão, cada endpoint tem um formato de resposta predefinido. Em alguns pontos de extremidade, os dados podem ser retornados no formato JSON por padrão. Em outros, eles são retornados como uma string. É possível substituir a especificação de formato de dados padrão usando os parâmetros de consulta
alt=json
oualt=text
, que retornam dados no formato de string JSON ou como uma representação de texto simples, respectivamente.Linux
Exemplo
Por exemplo, a tecla
tags
retorna automaticamente os dados no formato JSON. No entanto, é possível retornar dados em formato de texto especificando o parâmetro de consultaalt=text
.Consulta padrão
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
O resultado será assim:
["http-server", "db-client", "app-server", "mysql-server"]
Consulta com formatação
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text" -H "Metadata-Flavor: Google"
O resultado será assim:
http-server db-client app-server mysql-server
Windows
Exemplo
Por exemplo, a tecla
tags
retorna automaticamente os dados no formato JSON. No entanto, é possível retornar dados em formato de texto especificando o parâmetro de consultaalt=text
.Consulta padrão
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags") $valueO resultado será assim:
["http-server", "db-client", "app-server", "mysql-server"]
Consulta com formatação
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text") $valueO resultado será assim:
http-server db-client app-server mysql-server
Consulte alterações de metadados usando o recurso
wait-for-change
Os valores de metadados podem mudar durante a execução da VM. Por isso, o servidor de metadados pode ser notificado sobre alterações de metadados usando o recurso
wait-for-change
. Com essa opção, a solicitação só retornará uma saída quando os metadados especificados tiverem sido alterados.Use esse recurso em metadados personalizados ou definidos pelo servidor. Assim, se houver alteração na sua instância ou no seu projeto ou se alguém atualizar um entrada de metadado personalizado, você poderá reagir à alteração programaticamente.
Por exemplo, é possível executar uma solicitação na chave
tags
para que a solicitação seja retornada apenas se o conteúdo dos metadados das tags tiver sido alterado. Quando a solicitação é respondida, ela retorna o novo valor dessa chave de metadados.O recurso
wait-for-change
também permite fazer correspondência com a solicitação e definir tempos limites.Ao trabalhar com o recurso
wait-for-change
, considere o seguinte:Para executar uma solicitação
wait-for-change
, consulte uma chave de metadados e anexe o parâmetro de consulta?wait_for_change=true
:Linux
Exemplos
Neste exemplo, se uma solicitação for feita para
setInstanceTags method
, a solicitação retornará com os novos valores:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true" -H "Metadata-Flavor: Google"
O resultado será assim:
http-server db-client
Também é possível executar uma solicitação
wait-for-change
de maneira recursiva no conteúdo de um diretório:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&wait_for_change=true" -H "Metadata-Flavor: Google"
Quando houver alterações, o servidor de metadados retorna o novo conteúdo:
{"foo":"bar","baz":"bat"}
Windows
Exemplos
Depois que a chave de metadados especificada é alterada, a consulta retorna o novo valor. Neste exemplo, se uma solicitação for feita para
setInstanceTags method
, a solicitação retornará com os novos valores:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true") $valueO resultado será assim:
http-server db-client
Também é possível executar uma solicitação
wait-for-change
de maneira recursiva no conteúdo de um diretório:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes?recursive=true&wait_for_change=true") $valueQuando houver alterações, o servidor de metadados retorna o novo conteúdo:
{"foo":"bar","baz":"bat"}
Usar ETags
Quando você envia uma consulta
wait-for-change
simples, o servidor de metadados retorna uma resposta se algo tiver sido alterado no conteúdo desses metadados. No entanto, há uma disputa inerente entre uma atualização de metadados e uma solicitaçãowait-for-change
que está sendo emitida. Por isso é útil ter uma maneira confiável de saber que você está recebendo o valor de metadados mais recente.Para ajudar com isso, é possível usar o parâmetro de consulta
last_etag
, que compara o valor da ETag fornecido com o valor da ETag salvo no servidor de metadados. Se os valores das ETag corresponderem, a solicitaçãowait-for-change
será aceita. Caso contrário, isso indica que o conteúdo dos metadados foi alterado após a última recuperação do valor de ETag, e o valor mais recente é retornado imediatamente no servidor de metadados.VMs do Linux
Para receber o valor atual da ETag de uma chave de metadados, siga estas etapas:
VM do Windows
Para receber o valor atual da ETag de uma chave de metadados, siga estas etapas:
Python
Na amostra de Python a seguir, veja como monitorar o servidor de metadados programaticamente para verificar se houve alterações.
Nesta amostra, a ETag inicial foi definida como
0
. O servidor de metadados não retornará uma resposta com0
como o valor da ETag. Quando0
for especificado como a última ETag em uma solicitação, o servidor de metadados responderá com o valor atual e a ETag. Isso poupa um pouco do código necessário para conseguir o valor e a ETag iniciais.Definir limites de tempo
Se você quiser que a solicitação
wait-for-change
expire após um determinado número de segundos, defina o parâmetrotimeout_sec
. O parâmetrotimeout_sec
limita o tempo de espera da solicitação ao número de segundos especificado e, quando a solicitação atinge esse limite, retorna o conteúdo atual da chave de metadados.Quando você define o parâmetro
timeout_sec
, a solicitação sempre retorna após o número especificado de segundos, independentemente de o valor dos metadados ter sido alterado ou não. O tempo limite só pode ser definido com um valor inteiro.Linux
Por exemplo, o comando a seguir executa uma solicitação
wait-for-change
configurada para expirar após 360 segundos:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360" -H "Metadata-Flavor: Google"
Windows
Por exemplo, o comando a seguir executa uma solicitação
wait-for-change
configurada para expirar após 360 segundos:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360") $valueCódigos de status
Quando você executa uma solicitação
wait-for-change
, o servidor de metadados retorna códigos de status HTTP padrão para indicar se houve sucesso ou falha. Em caso de erros, as condições da rede podem fazer com que a sua solicitação seja cancelada e um código de erro seja retornado pelo servidor de metadados. Se esse for o caso, desenvolva seu aplicativo para ser tolerante a falhas, reconhecer e tratar esses erros.Os seguintes status podem ser retornados pelo servidor de metadados:
Status Descrição HTTP 200
Pronto! Um valor foi alterado ou você atingiu o valor especificado timeout_sec
e a solicitação foi retornada.Error 400
A solicitação não era válida. Corrija a sua consulta e tente fazer a solicitação novamente. Error 404
O valor de metadados especificado não existe mais. Esse erro também é retornado no servidor de metadados se os metadados foram excluídos enquanto você aguardava uma alteração. Error 503
Ocorreu um erro temporário de servidor ou um evento temporário de manutenção. Tente fazer a solicitação novamente. Consultar metadados usando o endpoint do servidor de metadados HTTPS
O endpoint do servidor de metadados HTTPS (
https://metadata.google.internal/computeMetadata/v1
) fornece segurança para transmissão de informações entre o servidor de metadados e a VM.Para usar o endpoint do servidor de metadados HTTPS, revise estes requisitos:
Para saber como as consultas ao endpoint do servidor de metadados HTTPS são tratadas, consulte Endpoint do servidor de metadados HTTPS. É possível realizar todas as mesmas consultas ao servidor de metadados, seja usando o https ou o endpoint http. No entanto, para chamar o endpoint HTTPS, é necessário especificar o caminho para os certificados de identidade do cliente e, em alguns casos, o certificado raiz.
Os comandos a seguir demonstram como consultar o servidor de metadados usando o endpoint https.
Linux
Windows
Limitações
Conferir os metadados personalizados das suas VMs
É possível visualizar os valores de metadados personalizados para suas VMs do Compute Engine de uma das seguintes maneiras:
Ver metadados do projeto
Para ver metadados personalizados que se aplicam a todas as VMs no projeto, use um dos métodos a seguir.
Console
gcloud
Use o comando
gcloud compute project-info describe
para consultar os metadados do projeto:gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
O resultado será assim:
--- fingerprint: HcSFdS_1_1I= items: - key: ssh-keys value: USERNAME:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWZ... kind: compute#metadata
REST
Para consultar os metadados do projeto, crie uma solicitação
GET
para o métodoproject.get
.Substitua
PROJECT_ID
pelo ID do projeto.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
O resultado será assim:
"kind": "compute#project", "id": "XXXXXXX", "creationTimestamp": "2018-12-10T08:34:33.616-08:00", "name": "YOUR_PROJECT", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "XXXXXCdg=", "items": [ { "key": "enable-guest-attributes", "value": "TRUE" }, { "key": "enable-os-inventory", "value": "true" }, { "key": "enable-osconfig", "value": "TRUE" }, { "key": "enable-oslogin", "value": "TRUE" }, { "key": "sshKeys", "value": "XXXXX" } ] }, ...
Conferir metadados de zona
Para ver metadados personalizados que se aplicam a todas as instâncias de VM em uma zona específica em um projeto, use um dos métodos a seguir.
gcloud
Para consultar os metadados personalizados zonais, use o comando
gcloud compute project-zonal-metadata describe
.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_ID
Substitua:
O resultado será assim:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
REST
Para consultar os metadados personalizados zonais, faça uma solicitação
GET
para o métodoinstanceSettings().get
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Substitua:
O resultado será assim:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
Ver metadados da instância
Para ver metadados personalizados que se aplicam a uma única VM no projeto, use um dos métodos a seguir.
Console
gcloud
Use o comando
gcloud compute instances describe
para consultar os metadados da instância:gcloud compute instances describe VM_NAME --flatten="metadata[]"
Substitua
VM_NAME
pelo nome da VM que você quer encontrar os metadados.O resultado será assim:
--- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata
REST
Para consultar metadados de uma VM específica, envie uma solicitação
GET
para o métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
O resultado será assim:
...... "metadata": { "kind": "compute#metadata", "fingerprint": "XXXXXXVo=", "items": [ { "key": "enable-oslogin", "value": "true" } ] },....
Substitua:
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-24 UTC.
-