En esta página, se brindan consejos que pueden ser útiles cuando se usa la herramienta de línea de comandos de gcloud
para administrar tus recursos de Compute Engine. Para obtener una lista completa de todas las marcas y los comandos gcloud compute
disponibles, puedes usar la ayuda de comandos incorporada (--help
), la documentación de referencia publicada o la documentación principal de gcloud.
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Recupera información sobre recursos
Puedes obtener información sobre los recursos de Compute Engine de dos maneras: con el comando list
que muestra una lista de recursos y con el comando describe
a fin de obtener detalles sobre un recurso específico.
Obtén recursos con los comandos list
Los comandos list
están diseñados con el fin de mostrar una tabla legible de los datos más relevantes para los recursos solicitados. De manera opcional, puedes filtrar tus resultados para mostrar una lista más corta con los resultados más relevantes.
- Filtrado de expresiones regulares para nombres
- Puedes usar la sintaxis de RE2 para hacer coincidir los nombres de los recursos (por ejemplo, los nombres de disco o instancia). Consulta la página sobre el comando
gcloud compute instances list
. - Marcas del comando
--limit
La cantidad máxima de resultados que se mostrarán. Esta marca es útil en particular cuando se usa con la marca
--sort-by
descrita en la sección Recupera recursos con comandos describe.--sort-by SORT_BY
Un campo para ordenar, si corresponde. Para aplicar un orden descendente, prefija el valor con una virgulilla (“~”). Esta marca interactúa con otras marcas que se aplican en este orden:
--flatten
,--sort-by
,--filter
,--limit
.
Obtén recursos con los comandos describe
Los comandos describe
están diseñados para mostrar datos sobre un recurso. Debes proporcionar el nombre del recurso en el comando describe
. Si no puedes recordar el nombre del recurso, puedes ejecutar un comando list
para obtener una lista de recursos. Por ejemplo, con los siguientes dos comandos se ilustra una situación en la que puedes enumerar imágenes con el fin de obtener un nombre de imagen y su proyecto asociado para que puedas proporcionarlos como entradas de un comando describe
:
gcloud compute images list
NAME PROJECT FAMILY DEPRECATED STATUS ... centos-7-v20170620 centos-cloud centos-7 READY ... debian-9-stretch-v20170619 debian-cloud debian-9 READY ...
gcloud compute images describe debian-9-stretch-v20170619 --project debian-cloud
El resultado predeterminado de los comandos describe
es el formato YAML, pero puedes usar la marca --format
para elegir entre los formatos JSON, YAML y de resultados de texto.
El resultado con formato JSON puede ser útil si estás analizando el resultado, mientras que el resultado con formato de texto coloca cada propiedad en una línea aparte.
gcloud compute regions describe us-central1 --format json
{ "creationTimestamp": "2013-09-06T10:36:54.847-07:00", "description": "us-central1", "id": "6837843067389011605", "kind": "compute#region", "name": "us-central1", ... "status": "UP", "zones": [ "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a", "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b", "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f" ] }
Ejemplos
Ejemplos de comandos list
Cuando generas la lista de recursos, obtienes una tabla fácil de leer de los datos resumidos. Por ejemplo, usa el comando instances list
para obtener datos resumidos sobre instancias en tu proyecto:
gcloud compute instances list
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS example-instance asia-east1-b e2-standard-2 10.240.95.199 107.167.182.44 RUNNING example-instance2 us-central1-a e2-standard-2 10.240.173.254 23.251.148.121 RUNNING test-instance us-central1-a e2-standard-2 10.240.118.207 23.251.153.172 RUNNING
Puedes filtrar los resultados de los comandos list
con expresiones regulares, lo que incluye la marca --filter
con un operador key ~ value
. Por ejemplo, filtra la lista de instancias para incluir solo las instancias con la palabra “test” en el nombre de la instancia:
gcloud compute instances list --filter="name ~ .*test.*"
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS test-instance us-central1-a e2-standard-2 10.240.118.207 23.251.153.172 RUNNING
Para mostrar una lista de operaciones de zona que tienen un status
de DONE
y no tienen un httpStatus
de 200
, aplica un filtro zone
en un comando operations list
, luego realiza la operación grep
en los resultados:
gcloud compute operations list --filter="zone:(us-central1-a)" | grep DONE | grep -v 200
NAME HTTP_STATUS TYPE TARGET STATUS operation-1397752585735-4f73fa25b4b58-f0920fd5-254d709f 400 delete us-central1-a/disks/example-instance DONE operation-1398357613036-4f7cc80cb41e0-765bcba6-34bbd040 409 insert us-central1-a/instances/i-1 DONE operation-1398615481237-4f8088aefbe08-cc300dfa-2ce113cf 409 insert us-central1-a/instances/i-2 DONE
Para obtener una lista de la lista de discos en us-central1-a
, en orden descendente por nombre (--sort-by ~NAME
), usa un comando disks list
:
gcloud compute disks list --sort-by ~NAME --filter="zone:(us-central1-a)"
En algunas situaciones, es posible que quieras tener el vínculo URI completo al recurso, como las solicitudes en las que pasas el resultado de un comando list
a otro comando o la aplicación que toma una lista de vínculos de recursos.
Para mostrar los vínculos URI completos a los recursos, usa la marca --uri
con un comando list
.
gcloud compute instances list --uri --filter="name~'^example-.*'"
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance1 https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance2
Para usar el resultado del comando list
anterior dentro de un comando que borra instancias, usa el siguiente código:
gcloud compute instances delete $(gcloud compute instances list --uri --filter="name~'^example-.*'")
Ejemplos de comandos describe
Para obtener detalles sobre una sola instancia, especifica la instancia y la zona.
Por ejemplo, para mostrar información sobre la instancia denominada “example-instance” en la zona “asia-east1-b”, puedes usar el comando instances describe
:
gcloud compute instances describe example-instance --zone asia-east1-b
Se mostrará un resultado en formato YAML de manera predeterminada. Para cambiar el resultado a JSON o a texto (una propiedad por línea), usa la marca --format
. Por ejemplo, a fin de ver un resultado en formato de texto para la misma instancia, usa el siguiente código:
gcloud compute instances describe example-instance --zone asia-east1-b --format text
--- canIpForward: False creationTimestamp: 2014-04-19T06:43:04.087-07:00 disks[0].autoDelete: False disks[0].boot: True disks[0].deviceName: example-instance ...
Si deseas obtener detalles sobre una operación específica, usa el comando operations list
para encontrar el URI completo de la operación:
gcloud compute operations list --filter="zone:(us-central1-a)"
NAME TYPE TARGET HTTP_STATUS STATUS operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 delete us-central1-a/instances/example-instance 200 DONE operation-1406155180632-4fee4040a67c1-bf581ed8-ab5af2b8 delete us-central1-a/instances/example-instance-2 200 DONE ...
Luego, usa el URI en un comando operations describe
:
gcloud compute operations describe \
operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 --zone us-central1-a
endTime: '2014-07-23T15:40:02.463-07:00' id: '31755455923038965' insertTime: '2014-07-23T15:39:25.910-07:00' kind: compute#operation name: operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 operationType: delete progress: 100 ...
Con el siguiente comando, se obtiene la configuración de la instancia en formato JSON (--format json
).
gcloud compute instances describe example-instance \
--zone us-central1-a
--format json
{ ... "name": "example-instance", "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "natIP": "107.167.187.66", "type": "ONE_TO_ONE_NAT" } ], "name": "nic0", "network": "https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default", "networkIP": "10.240.111.51" } ], ... "status": "RUNNING" ... }
Comprueba en qué usuario estás autorizado
Usa el siguiente comando a fin de averiguar en qué cuenta estás autorizado:
gcloud auth list
Revoca un token de actualización
Para revocar las credenciales de una cuenta en la máquina en la que usas la Google Cloud CLI, usa lo siguiente:
gcloud auth revoke
Debes volver a usar la autenticación con gcloud init
.
También puedes revocar el permiso para que la CLI de gcloud acceda a tus recursos. Por ejemplo, puedes hacerlo si tus tokens de actualización están en peligro. A fin de revocar el permiso para la CLI de gcloud, haz lo siguiente:
- Inicia sesión en la página de tu Cuenta de Google.
- Haz clic en Seguridad y, luego, en Ver todo en la sección Permisos de cuenta.
- Selecciona SDK de Google Cloud y haz clic en Revocar acceso.
Reinicia una instancia
Para restablecer una instancia llamada “example-instance” en la zona “us-central1-a”, usa el comando instances reset
:
gcloud compute instances reset example-instance --zone us-central1-a
Para obtener información acerca de las consecuencias de restablecer una instancia, lee la documentación sobre cómo restablecer una instancia.