Cada máquina virtual (VM) almacena sus metadatos en directorios en un servidor de metadatos. Su VM tiene acceso automáticamente a esta API de servidor de metadatos sin ninguna autorización adicional. Puede utilizar los métodos explicados en las siguientes secciones de este documento para ver y consultar valores de metadatos de VM:
- Consultar metadatos mediante programación desde una VM
- Ver metadatos personalizados para sus máquinas virtuales
Si encuentra errores al acceder al servidor de metadatos, consulte Solución de problemas de acceso al servidor de metadatos .
Antes de comenzar
- Para máquinas virtuales con Windows Server, utilice PowerShell 3.0 o posterior . Le recomendamos que utilice
ctrl+v
para pegar los bloques de código copiados. - Revise los conceptos básicos sobre cómo se definen, categorizan y organizan los metadatos de VM para Compute Engine. Para obtener más información, consulte Acerca de los metadatos de VM .
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Administrador de instancias informáticas (v1) (
roles/compute.instanceAdmin.v1
) en la máquina virtual o el proyecto - Si sus máquinas virtuales usan cuentas de servicio: Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio o proyecto - Para ver los metadatos personalizados del proyecto:
compute.projects.get
en el proyecto - Para ver metadatos zonales personalizados:
compute.instanceSettings.get
en la configuración de instancia en la zona requerida en el proyecto - Para ver metadatos personalizados para una instancia de VM:
compute.instances.get
en la VM - Si sus máquinas virtuales usan cuentas de servicio:
iam.serviceAccounts.actAs
en las cuentas de servicio o el proyecto - Consultar una única entrada de metadatos
- Consultar un listado de directorio de metadatos
- Consultar cambios de metadatos utilizando la función
wait-for-change
- Para todas las máquinas virtuales, puede consultar el servidor de metadatos mediante el punto final http (
http://metadata.google.internal/computeMetadata/v1
) o su dirección IP (169.254.169.254
). Utilice la dirección IPv4 incluso con instancias solo de IPv6 ( Vista previa ). Para máquinas virtuales protegidas , puede consultar el servidor de metadatos mediante uno de los siguientes métodos:
- El punto final http:
http://metadata.google.internal/computeMetadata/v1
- El punto final https: (
https://metadata.google.internal/computeMetadata/v1
). Este punto final https está disponible en Vista previa . Para ver el formato para consultar el punto final https, consulte Consulta de metadatos mediante el punto final del servidor de metadatos HTTPS .
- El punto final http:
- punto final http :
http://metadata.google.internal/computeMetadata/v1
http://169.254.169.254/computeMetadata/v1
http://metadata.goog/computeMetadata/v1
- punto final https ( vista previa ) :
Esta es la única URL admitida durante la etapa de vista previa.https://metadata.google.internal/computeMetadata/v1
- Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta. Para consultar una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Por ejemplo, para consultar la imagen de inicio de la VM, ejecute la siguiente consulta:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/image" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
projects/rhel-cloud/global/images/rhel-8-v20210122
- Para ver la clave de metadatos
- Conéctese a su máquina virtual Windows.
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
para realizar una consulta. Para consultar una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente comando:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Por ejemplo, para consultar la imagen de inicio de la VM, ejecute la siguiente consulta:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/image") $value
El resultado es similar al siguiente:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
- Para ver la clave de metadatos
Conéctese a su máquina virtual Linux.
Para consultar una instancia de VM o un directorio de metadatos de proyecto, desde su VM Linux, ejecute el siguiente comando:
curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/" -H "Metadata-Flavor: Google"
Reemplace
PATH_TO_METADATA_DIRECTORY
con la ruta a la instancia de VM o al directorio de metadatos del proyecto cuyos listados desea consultar de forma recursiva. Por ejemplo:- Para ver la entrada del directorio de metadatos del proyecto
attributes
, la ruta a especificar esproject/attributes/
. - Para ver la entrada del directorio de metadatos de la instancia de VM
disks
, la ruta a especificar esinstance/disks/
.
Por ejemplo, considere la entrada
disks/
, que es un directorio de discos adjunto a la VM. Para consultar losdisks/
entrada, complete los siguientes pasos:Ejecute el comando de la herramienta
curl
en el directorio de discos.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
0/ 1/ 2/
Si desea obtener más información sobre el directorio del disco
0/
, puede consultar la URL específica para ese directorio:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
device-name index mode type
Luego, para consultar el tipo de disco (
type
) para los discos0/
, puede ejecutar lo siguiente:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
PERSISTENT
- Para ver la entrada del directorio de metadatos del proyecto
Conéctese a su máquina virtual Windows.
Para consultar una instancia de VM o un directorio de metadatos de proyecto, desde su VM de Windows, ejecute el siguiente comando:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/") $value
Reemplace
PATH_TO_METADATA_DIRECTORY
con la ruta a la instancia de VM o al directorio de metadatos del proyecto cuyos listados desea consultar de forma recursiva. Por ejemplo:- Para ver la entrada del directorio de metadatos del proyecto
attributes
, la ruta a especificar esproject/attributes/
. - Para ver la entrada del directorio de metadatos de la instancia de VM
disks
, la ruta a especificar esinstance/disks/
.
Por ejemplo, considere la entrada
disks/
, que es un directorio de discos adjunto a la VM. Para consultar losdisks/
entrada, complete los siguientes pasos:Utilice el comando
Invoke-RestMethod
en el directorio de discos.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/") $value
El resultado es similar al siguiente:
0/ 1/ 2/
Si desea obtener más información sobre el directorio del disco
0/
, puede consultar la URL específica para ese directorio:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/") $value
El resultado es similar al siguiente:
device-name index mode type
Luego, para consultar el tipo de disco (
type
) para los discos0/
, puede ejecutar lo siguiente:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type") $value
El resultado es similar al siguiente:
PERSISTENT
- Para ver la entrada del directorio de metadatos del proyecto
Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta. Para consultar recursivamente los listados de una instancia de VM o un directorio de metadatos del proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true" -H "Metadata-Flavor: Google"
Reemplace
PATH_TO_METADATA_DIRECTORY
con la ruta a la instancia de VM o al directorio de metadatos del proyecto cuyos listados desea consultar de forma recursiva. Por ejemplo:- Para ver la entrada del directorio de metadatos del proyecto
attributes
, la ruta a especificar esproject/attributes/
. - Para ver la entrada del directorio de metadatos de la instancia de VM
disks
, la ruta a especificar esinstance/disks/
.
Por ejemplo, el siguiente comando consulta de forma recursiva los listados de metadatos de la instancia para el directorio
disks/
.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
[{"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"}]
De forma predeterminada, los contenidos recursivos se devuelven en formato JSON. Si desea devolver estos contenidos en formato de texto, agregue el 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"
El resultado es similar al siguiente:
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 ver la entrada del directorio de metadatos del proyecto
Conéctese a su máquina virtual Windows.
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
para realizar una consulta. Para consultar recursivamente los listados de una instancia de VM o un directorio de metadatos del proyecto, ejecute el siguiente comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true") $valueReemplace
PATH_TO_METADATA_DIRECTORY
con la ruta a la instancia de VM o al directorio de metadatos del proyecto cuyos listados desea consultar de forma recursiva. Por ejemplo:- Para ver la entrada del directorio de metadatos del proyecto
attributes
, la ruta a especificar esproject/attributes/
. - Para ver la entrada del directorio de metadatos de la instancia de VM
disks
, la ruta a especificar esinstance/disks/
.
Por ejemplo, el siguiente comando consulta de forma recursiva los listados de metadatos de la instancia para el directorio
disks/
.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true") $value
El resultado es similar al siguiente:
[{"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"}]
De forma predeterminada, los contenidos recursivos se devuelven en formato JSON. Si desea devolver estos contenidos en formato de texto, agregue el 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
El resultado es similar al siguiente:
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 ver la entrada del directorio de metadatos del proyecto
- Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta. Para cambiar el formato de datos de respuesta de consulta para una instancia de VM o una entrada de metadatos de proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
DATA_FORMAT
: el formato en el que desea los datos de respuesta de la consulta (por ejemplo,text
ojson
).
- Conéctese a su máquina virtual Windows.
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
para realizar una consulta. Para cambiar el formato de datos de respuesta de consulta para una instancia de VM o una entrada de metadatos de proyecto, ejecute el siguiente comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT") $valueReemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
DATA_FORMAT
: el formato en el que desea los datos de respuesta de la consulta (por ejemplo,text
ojson
).
Solo puede realizar una solicitud de
wait-for-change
en un punto final de metadatos o de forma recursiva en el contenido de un directorio. No puede realizar una solicitud dewait-for-change
en una lista de directorio. Si intenta hacer esto, el servidor de metadatos falla su solicitud y devuelve un error 400 Solicitud no válida .No puede realizar una solicitud de
wait-for-change
para un token de cuenta de servicio. Si intenta realizar una solicitud dewait-for-change
a la URL del token de la cuenta de servicio, la solicitud falla inmediatamente y devuelve un error 400 Solicitud no válida .- Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta. Para realizar una solicitud dewait-for-change
para una instancia de VM o una entrada de metadatos de proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true" -H "Metadata-Flavor: Google"
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Después de que hay un cambio en la clave de metadatos especificada, la consulta regresa con el nuevo valor.
- Para ver la clave de metadatos
- Conéctese a su máquina virtual Windows.
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
para realizar una consulta. Para realizar una solicitud dewait-for-change
para una instancia de VM o una entrada de metadatos de proyecto, ejecute el siguiente comando:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true") $value
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Después de que hay un cambio en la clave de metadatos especificada, la consulta regresa con el nuevo valor.
- Para ver la clave de metadatos
- Conéctese a su máquina virtual Linux.
Realice una solicitud a esa clave e imprima los encabezados. Para hacer esto, use la herramienta
curl
con el indicador-v
. Para obtener la ETag actual para una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente comando:curl -v "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Por ejemplo, el siguiente comando obtiene el valor ETag actual para la clave de metadatos de la instancia
tags
.user@myinst:~$ curl -v "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
* 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 ver la clave de metadatos
Luego puede usar ese valor de ETag con el comando de la herramienta
curl
en su solicitudwait-for-change
. Para utilizar el valor de ETag para la solicitudwait-for-change
de metadatos de instancia o proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
ETAG
: el valor de ETag para la clave de metadatos.
En este ejemplo, el siguiente comando utiliza el valor ETag para la clave
tags
y consulta la entrada de metadatos de la instancia.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e" -H "Metadata-Flavor: Google"
El servidor de metadatos coincide con el valor de ETag especificado y, si ese valor cambia, la solicitud regresa con el nuevo contenido de su clave de metadatos.
- Conéctese a su máquina virtual Windows.
Realice una solicitud a esa clave e imprima los encabezados. En Windows, utilice el comando
Invoke-WebRequest
. Para obtener la ETag actual para una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente comando:$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY)
$value.Headers.ETag
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
Por ejemplo, el siguiente comando obtiene el valor ETag actual para la clave de metadatos de la instancia
tags
.PS C:> $value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/tags)
$value.Headers.ETag
El resultado es similar al siguiente:
* 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 ver la clave de metadatos
Luego puede usar ese valor de ETag en su solicitud
wait-for-change
. Para utilizar el valor de ETag para la solicitudwait-for-change
de metadatos de instancia o proyecto, ejecute el siguiente 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") $valueReemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
ETAG
: el valor de ETag para la clave de metadatos.
En este ejemplo, el siguiente comando utiliza el valor ETag para la clave
tags
y consulta la entrada de metadatos de la instancia.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") $valueEl servidor de metadatos coincide con el valor de ETag especificado y, si ese valor cambia, la solicitud regresa con el nuevo contenido de su clave de metadatos.
- Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta. Para realizar una solicitud dewait-for-change
con un valor de tiempo de espera para una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
TIMEOUT
: el valor del tiempo de espera.
- Conéctese a su máquina virtual Windows.
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
para realizar una consulta. Para realizar una solicitud dewait-for-change
con un valor de tiempo de espera para una instancia de VM o una entrada de metadatos del proyecto, ejecute el siguiente 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") $valueReemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
TIMEOUT
: el valor del tiempo de espera.
Debe solicitar acceso a la vista previa del punto final del servidor de metadatos HTTPS .
Después de agregar su proyecto a la lista de permitidos, puede crear la VM. La VM debe cumplir los siguientes requisitos:
- El entorno invitado debe estar ejecutándose en la VM .
- La VM debe ser una VM blindada. Esto se debe a que el servidor de metadatos HTTPS requiere el uso de la Interfaz de firmware extensible unificada (UEFI) y el Módulo de plataforma confiable virtual (vTPM) para verificar los certificados.
Conéctese a su máquina virtual Linux.
Desde su máquina virtual Linux, utilice la herramienta
curl
para realizar una consulta y especificar el certificado de identidad del cliente. Opcionalmente, también puede especificar el certificado raíz.curl "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" \ -E CLIENT_CERTIFICATE \ [--cacert ROOT_CERTIFICATE] \ -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
-
CLIENT_CERTIFICATE
: la ruta al certificado de identidad del cliente:/run/google-mds-mtls/client.key
. - Opcional:
ROOT_CERTIFICATE
: la ruta al certificado raíz:/run/google-mds-mtls/root.crt
.
Por ejemplo, para consultar la imagen de inicio de una VM, ejecute la siguiente consulta:
user@myinst:~$ curl "https://metadata.google.internal/computeMetadata/v1/instance/image" \ -E /run/google-mds-mtls/client.key \ -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
projects/rhel-cloud/global/images/rhel-8-v20210122
Si ve un mensaje de error, revise la documentación de solución de problemas .
Conéctese a su máquina virtual Windows.
Obtenga el certificado de identidad del cliente mediante uno de los siguientes 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" }
Desde su máquina virtual Windows, use el comando
Invoke-RestMethod
y especifique el certificado de identidad del cliente para realizar una 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
Reemplace lo siguiente:
-
CLIENT_CERTIFICATE
: la ruta al certificado de identidad del cliente en la VM. Esta es la variable$cert
que se configuró en el paso anterior. Reemplace
PATH_TO_METADATA_ENTRY
con la ruta a la instancia de VM o clave de metadatos del proyecto cuyo valor desea consultar. Si la clave está en un subdirectorio del directorio de instancia o proyecto, asegúrese de incluir también el subdirectorio. Por ejemplo:- Para ver la clave de metadatos
project-id
, que se almacena en los metadatos del proyecto, especifiqueproject/project-id
. - Para ver la clave de metadatos
image
, que se almacena en los metadatos de la instancia de VM, especifiqueinstance/image
. - Para ver
enable-oslogin
que se puede almacenar en el subdirectorio de atributos de los metadatos del proyecto o de la instancia de VM, especifiqueproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
según su caso de uso.
- Para ver la clave de metadatos
Por ejemplo, para consultar la imagen de inicio de una máquina virtual de Windows Server 2019, ejecute la siguiente consulta:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate $cert ` -Uri "https://metadata.google.internal/computeMetadata/v1/instance/image") $value
El resultado es similar al siguiente:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
-
El servidor de metadatos rechaza automáticamente cualquier solicitud que contenga el encabezado
X-Forwarded-For
. Este encabezado generalmente indica que la solicitud fue enviada por proxy y podría no ser una solicitud realizada por un usuario autorizado. Por razones de seguridad, todas estas solicitudes se rechazan.Cuando utiliza el comando
curl
para recuperar metadatos del servidor, tenga en cuenta que algunos caracteres codificados no son compatibles con la ruta de solicitud. Los caracteres codificados solo se admiten en la ruta de consulta.Por ejemplo, es posible que la siguiente solicitud no funcione:
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 esta solicitud funcione, debe reemplazar el carácter codificado no admitido en la ruta de la solicitud (
%40
) con el valor aceptado equivalente (@
).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"
La siguiente tabla resume los caracteres codificados que no se admiten en una ruta de solicitud.
Carácter codificado Valor aceptado %21 !
%24 $
%27 '
%28 (
%29 )
%2A *
%2C ,
%40 @
En la consola de Google Cloud, vaya a la página Metadatos .
En la página de metadatos , ve una lista de todas las entradas de metadatos de proyecto personalizados para su proyecto.
-
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona para la que desea ver los metadatos zonales. -
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona para la que desea ver los metadatos zonales. - En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en el nombre de la VM para el que desea ver metadatos.
Claves SSH para esta VM . En la sección de seguridad y acceso , vea el campo de teclas SSH .
Un valor de
None
indica que no hay claves SSH almacenadas en metadatos de instancia.Cualquier otro valor indica que hay claves SSH almacenadas en metadatos de instancia.
Cayos SSH para un proyecto . En la sección de seguridad y acceso , vea el campo Bloque de teclas SSH de todo el proyecto .
Un valor de
On
indica que el valor de los metadatos claveblock-project-ssh-keys
esTRUE
en los metadatos de caso.Un valor de
Off
indica que el valor de lablock-project-ssh-keys
esFALSE
o que la clave no está establecida.
Todos los demás metadatos personalizados . Ver la sección Metadatos personalizados . Ves todas las teclas y valores de metadatos personalizados, aparte de los metadatos de clave SSH.
-
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona donde se encuentra la VM -
VM_NAME
: el nombre de la VM - Obtenga más información sobre los metadatos de VM .
- Aprenda a establecer metadatos personalizados .
- Aprenda a establecer y consultar atributos de invitados .
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Roles requeridos
Se necesitan las siguientes funciones y permisos para ver metadatos personalizados desde fuera de la VM mediante la consola de Google Cloud, la CLI de Google Cloud o REST. Si consulta los metadatos mediante programación desde la VM, solo necesita los roles y permisos para conectarse a la VM.
Para obtener los permisos que necesita para ver metadatos personalizados desde fuera de la máquina virtual, solicite a su administrador que le otorgue las siguientes funciones de IAM:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para ver metadatos personalizados desde fuera de la VM. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para ver metadatos personalizados desde fuera de la VM:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Consultar metadatos mediante programación
Puede acceder a todos los metadatos consultando las entradas de valores de metadatos mediante programación desde una máquina virtual Linux o Windows. Desde dentro de su VM, puede consultar mediante programación sus valores de metadatos de una de las siguientes maneras mediante el uso de herramientas como
curl
en Linux oInvoke-RestMethod
en Windows:Puntos finales del servidor de metadatos
Para consultar metadatos mediante programación, desde una máquina virtual, tiene los siguientes puntos finales del servidor de metadatos:
La mayoría de los ejemplos de este documento utilizan el punto final http. Sin embargo, puede acceder a las mismas entradas de metadatos ya sea que utilice el punto final https o http.
Partes de una solicitud de metadatos
La siguiente tabla resume las partes principales de una solicitud de consulta de metadatos.
Componentes Descripción URL raíz Todos los valores de metadatos se definen como subrutas debajo de las siguientes URL raíz:
Encabezado de solicitud Este encabezado indica que la solicitud se envió con la intención de recuperar valores de metadatos, en lugar de hacerlo involuntariamente desde una fuente insegura, y permite que el servidor de metadatos devuelva los datos que usted solicitó. Si no proporciona este encabezado, el servidor de metadatos rechaza su solicitud.
Metadata-Flavor: Google
Consultar una única entrada de metadatos
Utilice los siguientes comandos para consultar una única entrada de metadatos.
linux
ventanas
Consultar listados de directorios de metadatos
Utilice los siguientes comandos para consultar listados de directorios de metadatos. Los listados de directorios son entradas de metadatos que contienen otras claves de metadatos. Cualquier entrada de metadatos que termine en una barra diagonal es una lista de directorio.
linux
ventanas
La entrada
disks/
es un directorio de discos que está conectado a la VM. Para consultar la entrada de discos, complete los siguientes pasos:Consultar recursivamente listados de directorios.
Si desea devolver todo el contenido de un directorio, utilice el parámetro de consulta
recursive=true
con su solicitud:linux
ventanas
Dar formato a la salida de la consulta
De forma predeterminada, cada punto final tiene un formato predefinido para la respuesta. Algunos puntos finales pueden devolver datos en formato JSON de forma predeterminada, mientras que otros pueden devolver datos como una cadena. Puede anular la especificación de formato de datos predeterminada utilizando los parámetros de consulta
alt=json
oalt=text
, que devuelven datos en formato de cadena JSON o como una representación de texto sin formato, respectivamente.linux
Ejemplo
Por ejemplo, la clave
tags
devuelve automáticamente datos en formato JSON. En su lugar, puede devolver datos en formato de texto, especificando el parámetro de consultaalt=text
.Consulta predeterminada
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
["http-server", "db-client", "app-server", "mysql-server"]
Consulta con formato
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
http-server db-client app-server mysql-server
ventanas
Ejemplo
Por ejemplo, la clave
tags
devuelve automáticamente datos en formato JSON. En su lugar, puede devolver datos en formato de texto, especificando el parámetro de consultaalt=text
.Consulta predeterminada
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags") $valueEl resultado es similar al siguiente:
["http-server", "db-client", "app-server", "mysql-server"]
Consulta con formato
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text") $valueEl resultado es similar al siguiente:
http-server db-client app-server mysql-server
Consultar cambios de metadatos utilizando la función
wait-for-change
Dado que los valores de metadatos pueden cambiar mientras su VM se está ejecutando, se puede notificar al servidor de metadatos sobre los cambios de metadatos mediante la función
wait-for-change
. Con esta opción, la solicitud solo devuelve un resultado cuando los metadatos especificados han cambiado.Puede usar esta función en metadatos personalizados o metadatos definidos por el servidor, de modo que si algo cambia en su VM o proyecto, o si alguien actualiza una entrada de metadatos personalizados, puede reaccionar mediante programación al cambio.
Por ejemplo, puede realizar una solicitud en la clave
tags
para que la solicitud solo regrese si el contenido de los metadatos de las etiquetas ha cambiado. Cuando la solicitud regresa, proporciona el nuevo valor de esa clave de metadatos.La función
wait-for-change
también le permite coincidir con su solicitud y establecer tiempos de espera .Cuando trabaje con la función
wait-for-change
, considere lo siguiente:Para realizar una solicitud
wait-for-change
, consulte una clave de metadatos y agregue el parámetro de consulta?wait_for_change=true
:linux
Ejemplos
En este ejemplo, si se realiza una solicitud al
setInstanceTags method
, la solicitud regresa con los nuevos valores:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
http-server db-client
También puede realizar una solicitud de
wait-for-change
de forma recursiva en el contenido de un directorio:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&wait_for_change=true" -H "Metadata-Flavor: Google"
El servidor de metadatos devuelve los nuevos contenidos si hay algún cambio:
{"foo":"bar","baz":"bat"}
ventanas
Ejemplos
Después de que hay un cambio en la clave de metadatos especificada, la consulta regresa con el nuevo valor. En este ejemplo, si se realiza una solicitud al
setInstanceTags method
, la solicitud regresa con los nuevos valores:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true") $valueEl resultado es similar al siguiente:
http-server db-client
También puede realizar una solicitud de
wait-for-change
de forma recursiva en el contenido de un directorio:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes?recursive=true&wait_for_change=true") $valueEl servidor de metadatos devuelve los nuevos contenidos si hay algún cambio:
{"foo":"bar","baz":"bat"}
Utilice etiquetas ET
Cuando envía una consulta
wait-for-change
, el servidor de metadatos devuelve una respuesta si algo ha cambiado en el contenido de esos metadatos. Sin embargo, existe una condición de carrera inherente entre una actualización de metadatos y la emisión de una solicitudwait-for-change
, por lo que es útil tener una forma confiable de saber que está obteniendo el valor de metadatos más reciente.Para ayudar con esto, puede usar el parámetro de consulta
last_etag
, que compara el valor de ETag que proporciona con el valor de ETag guardado en el servidor de metadatos. Si los valores de ETag coinciden, se acepta la solicitudwait-for-change
. Si los valores de ETag no coinciden, esto indica que el contenido de los metadatos ha cambiado desde la última vez que recuperó el valor de ETag y el servidor de metadatos regresa inmediatamente con este último valor.Máquinas virtuales Linux
Para obtener el valor de ETag actual para una clave de metadatos, complete los siguientes pasos:
Máquinas virtuales de Windows
Para obtener el valor de ETag actual para una clave de metadatos, complete los siguientes pasos:
Pitón
El siguiente ejemplo de Python muestra cómo observar mediante programación el servidor de metadatos en busca de cambios.
Este ejemplo establece la ETag inicial en
0
. El servidor de metadatos no devuelve una respuesta con0
como valor de ETag. Cuando se especifica0
como la última ETag en una solicitud, el servidor de metadatos responde con el valor actual y la ETag. Esto ahorra un poco del código necesario para obtener el valor inicial y ETag.Establecer tiempos de espera
Si desea que su solicitud
wait-for-change
expire después de una cierta cantidad de segundos, puede configurar el parámetrotimeout_sec
. El parámetrotimeout_sec
limita el tiempo de espera de su solicitud a la cantidad de segundos que especificó y, cuando la solicitud alcanza ese límite, devuelve el contenido actual de la clave de metadatos.Cuando configura el parámetro
timeout_sec
, la solicitud siempre regresa después del número de segundos especificado, independientemente de si el valor de los metadatos ha cambiado realmente o no. Sólo es posible establecer un valor entero para su tiempo de espera.linux
Por ejemplo, el siguiente comando realiza una solicitud de
wait-for-change
cuyo tiempo de espera se establece en 360 segundos:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360" -H "Metadata-Flavor: Google"
ventanas
Por ejemplo, el siguiente comando realiza una solicitud de
wait-for-change
cuyo tiempo de espera se establece en 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") $valueConsultar metadatos utilizando el punto final del servidor de metadatos HTTPS
El punto final del servidor de metadatos HTTPS (
https://metadata.google.internal/computeMetadata/v1
) proporciona seguridad adicional para la transmisión de información entre el servidor de metadatos y la VM.Para utilizar el punto final del servidor de metadatos HTTPS, revise los siguientes requisitos:
Para obtener una descripción general de cómo se manejan las consultas al extremo del servidor de metadatos HTTPS, consulte Punto final del servidor de metadatos HTTPS . Puede realizar las mismas consultas al servidor de metadatos ya sea que utilice el punto final https o http. Sin embargo, para llamar al punto final https debe especificar la ruta a los certificados de identidad del cliente y, en algunos casos, al certificado raíz.
Los siguientes comandos demuestran cómo consultar el servidor de metadatos mediante el punto final https.
linux
ventanas
Limitaciones
Códigos de estado
Cuando realiza una solicitud al servidor de metadatos, el servidor de metadatos devuelve códigos de estado HTTP estándar para indicar el éxito o el fracaso. A veces, las condiciones de la red o los eventos del host pueden hacer que el servidor de metadatos falle su solicitud y devuelva un código de error. En estos casos, debe diseñar su aplicación para que sea tolerante a fallas y pueda reconocer y manejar estos errores.
Para obtener una lista detallada de los códigos de estado que se pueden devolver, consulte Solución de problemas de códigos de servidor .
Ver los metadatos personalizados para sus máquinas virtuales
Puedes ver los valores de metadatos personalizados para tus VM de Compute Engine de una de las siguientes maneras:
Ver metadatos del proyecto
Para ver metadatos personalizados que se aplican a todas las máquinas virtuales de su proyecto, utilice uno de los siguientes métodos.
Consola
nube de gcloud
Use el
gcloud compute project-info describe
el comando para consultar metadatos del proyecto:gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
El resultado es similar al siguiente:
--- fingerprint: HcSFdS_1_1I= items: - key: ssh-keys value: USERNAME:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWZ... kind: compute#metadata
DESCANSAR
Para consultar los metadatos del proyecto, cree una solicitud
GET
al métodoproject.get
.Reemplace
PROJECT_ID
con su ID de proyecto.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
El resultado es similar al siguiente:
"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" } ] }, ...
Ver metadatos zonales
Para ver metadatos personalizados que se aplican a todas las instancias de VM en una zona específica en un proyecto, use uno de los siguientes métodos.
nube de gcloud
Para consultar los metadatos zonales personalizados, use el Comando
gcloud compute project-zonal-metadata describe
.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_ID
Reemplace lo siguiente:
El resultado es similar al siguiente:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
DESCANSAR
Para consultar los metadatos zonales personalizados, realice una solicitud
GET
a losinstanceSettings().get
métodoGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Reemplace lo siguiente:
El resultado es similar al siguiente:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
Ver metadatos de instancia
Para ver metadatos que se aplican a una sola VM en su proyecto, use uno de los siguientes métodos.
Consola
nube de gcloud
Use las
gcloud compute instances describe
el comando para consultar metadatos de instancia:gcloud compute instances describe VM_NAME --flatten="metadata[]"
Reemplace
VM_NAME
con el nombre de la VM para la que desea encontrar metadatos.El resultado es similar al siguiente:
--- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata
DESCANSAR
Para consultar metadatos para una VM específica, envíe una solicitud
GET
al métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
El resultado es similar al siguiente:
...... "metadata": { "kind": "compute#metadata", "fingerprint": "XXXXXXVo=", "items": [ { "key": "enable-oslogin", "value": "true" } ] },....
Reemplace lo siguiente:
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-