sugerencias de uso de computación de gcloud,consejos de uso de computación de gcloud


Esta página contiene sugerencias que pueden ser útiles cuando usas la herramienta de línea de comandos gcloud para administrar tus recursos de Compute Engine. Para obtener una lista completa de todos los indicadores y comandos gcloud compute disponibles, puedes usar la ayuda de comandos integrada ( --help ) o la documentación de referencia publicada o la documentación principal de gcloud .

Antes de comenzar

  • 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:
    1. 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.

    2. Set a default region and zone.

Obteniendo información sobre recursos

Puedes obtener información sobre los recursos de Compute Engine de dos maneras: usando el comando list para devolver una lista de recursos y usando el comando describe para devolver detalles sobre un recurso específico.

Obteniendo recursos con comandos list

Los comandos list están diseñados para devolver una tabla legible por humanos de los datos más relevantes para los recursos solicitados. Opcionalmente, puede filtrar sus resultados para obtener una lista más corta con resultados más relevantes.

Filtrado de expresiones regulares para nombres
Puede utilizar la sintaxis RE2 para hacer coincidir nombres de recursos (por ejemplo, nombres de instancia o disco). Consulta el comando gcloud compute instances list .
Banderas de comando
--limit

El número máximo de resultados que se devolverán. Este indicador es particularmente útil cuando se usa con el indicador --sort-by como se describe en la sección Obtención de recursos con comandos de descripción .

--sort-by SORT_BY

Un campo para ordenar, si corresponde. Para realizar una clasificación en orden descendente, anteponga el valor con una tilde ("~"). Este indicador interactúa con otros indicadores que se aplican en este orden: --flatten , --sort-by , --filter , --limit .

Obteniendo recursos con comandos describe

Los comandos describe están diseñados para mostrar datos sobre un recurso. Debe proporcionar el nombre del recurso en el comando describe . Si no recuerda el nombre del recurso, puede ejecutar un comando list para obtener una lista de recursos. Por ejemplo, los dos comandos siguientes ilustran un escenario en el que puede enumerar imágenes para obtener un nombre de imagen y su proyecto asociado para poder proporcionarlas como entradas a 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

La salida predeterminada de los comandos describe es el formato YAML, pero puede usar el indicador --format para elegir entre los formatos de salida JSON, YAML y texto. La salida con formato JSON puede ser útil si está analizando la salida, mientras que la salida con formato de texto coloca cada propiedad en una línea separada.

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 enumera los recursos, obtiene una tabla fácil de leer con datos resumidos. Por ejemplo, para devolver datos resumidos sobre instancias en su proyecto, use el comando instances list :

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

Puede filtrar los resultados de los comandos list con expresiones regulares incluyendo el indicador --filter con un operador key ~ value . Por ejemplo, filtre la lista de instancias para incluir solo las instancias con "prueba" 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 devolver una lista de operaciones de zona que tienen el status DONE y no tienen un httpStatus de 200 , aplique un filtro zone en un comando operations list y luego grep 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 discos en us-central1-a , ordenados en orden descendente por nombre ( --sort-by ~NAME ), use un comando disks list :

gcloud compute disks list --sort-by ~NAME --filter="zone:(us-central1-a)"

En algunos escenarios, es posible que desee tener el enlace URI completo al recurso, como solicitudes en las que pasa el resultado de un comando list a otro comando o aplicación que toma una lista de enlaces de recursos. Para mostrar enlaces de recursos URI completos, use el indicador --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 la salida del comando list anterior dentro de un comando que elimina instancias, use:

gcloud compute instances delete $(gcloud compute instances list --uri --filter="name~'^example-.*'")

Ejemplos de comandos describe

Para obtener detalles sobre una sola instancia, especifique la instancia, incluida la zona. Por ejemplo, para devolver información sobre la instancia denominada "ejemplo-instancia" en la zona "asia-east1-b", puede usar el comando instances describe :

gcloud compute instances describe example-instance --zone asia-east1-b

De forma predeterminada, esto devuelve salida YAML. Para cambiar la salida a JSON o texto (una propiedad por línea), use el indicador --format . Por ejemplo, para devolver una salida de texto para la misma instancia, use:

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
...

Para obtener detalles sobre una operación específica, use 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 use 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
...

El siguiente comando 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"
   ...
}

Comprobar qué usuario está autorizado como

Utilice el siguiente comando para averiguar a qué cuenta está autorizado: utilice:

gcloud auth list

Revocar un token de actualización

Para revocar las credenciales de una cuenta en la máquina donde utiliza la CLI de Google Cloud, utilice:

gcloud auth revoke

Esto te obligará a volver a autenticar usando gcloud init .

También puedes revocar el permiso para que la CLI de gcloud acceda a tus recursos. Puede hacer esto, por ejemplo, si sus tokens de actualización están comprometidos. Para revocar el permiso para la CLI de gcloud:

  1. Inicie sesión en la página de su cuenta de Google .
  2. Haga clic en Seguridad y luego haga clic en Ver todo en la sección Permisos de la cuenta .
  3. Seleccione Google Cloud SDK y haga clic en Revocar acceso .

Reiniciar una instancia

Para restablecer una instancia llamada "ejemplo-instancia" en la zona "us-central1-a", use el comando instances reset :

gcloud compute instances reset example-instance --zone us-central1-a

Para obtener información sobre las implicaciones de un restablecimiento, lea la documentación Restablecer una instancia .

,

Esta página contiene sugerencias que pueden ser útiles cuando usas la herramienta de línea de comandos gcloud para administrar tus recursos de Compute Engine. Para obtener una lista completa de todos los indicadores y comandos gcloud compute disponibles, puedes usar la ayuda de comandos integrada ( --help ) o la documentación de referencia publicada o la documentación principal de gcloud .

Antes de comenzar

  • 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:
    1. 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.

    2. Set a default region and zone.

Obteniendo información sobre recursos

Puedes obtener información sobre los recursos de Compute Engine de dos maneras: usando el comando list para devolver una lista de recursos y usando el comando describe para devolver detalles sobre un recurso específico.

Obteniendo recursos con comandos list

Los comandos list están diseñados para devolver una tabla legible por humanos de los datos más relevantes para los recursos solicitados. Opcionalmente, puede filtrar sus resultados para obtener una lista más corta con resultados más relevantes.

Filtrado de expresiones regulares para nombres
Puede utilizar la sintaxis RE2 para hacer coincidir nombres de recursos (por ejemplo, nombres de instancia o disco). Consulta el comando gcloud compute instances list .
Banderas de comando
--limit

El número máximo de resultados que se devolverán. Este indicador es particularmente útil cuando se usa con el indicador --sort-by como se describe en la sección Obtención de recursos con comandos de descripción .

--sort-by SORT_BY

Un campo para ordenar, si corresponde. Para realizar una clasificación en orden descendente, anteponga el valor con una tilde ("~"). Este indicador interactúa con otros indicadores que se aplican en este orden: --flatten , --sort-by , --filter , --limit .

Obteniendo recursos con comandos describe

Los comandos describe están diseñados para mostrar datos sobre un recurso. Debe proporcionar el nombre del recurso en el comando describe . Si no recuerda el nombre del recurso, puede ejecutar un comando list para obtener una lista de recursos. Por ejemplo, los dos comandos siguientes ilustran un escenario en el que puede enumerar imágenes para obtener un nombre de imagen y su proyecto asociado para poder proporcionarlas como entradas a 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

La salida predeterminada de los comandos describe es el formato YAML, pero puede usar el indicador --format para elegir entre los formatos de salida JSON, YAML y texto. La salida con formato JSON puede ser útil si está analizando la salida, mientras que la salida con formato de texto coloca cada propiedad en una línea separada.

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 enumera los recursos, obtiene una tabla fácil de leer con datos resumidos. Por ejemplo, para devolver datos resumidos sobre instancias en su proyecto, use el comando instances list :

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

Puede filtrar los resultados de los comandos list con expresiones regulares incluyendo el indicador --filter con un operador key ~ value . Por ejemplo, filtre la lista de instancias para incluir solo las instancias con "prueba" 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 devolver una lista de operaciones de zona que tienen el status DONE y no tienen un httpStatus de 200 , aplique un filtro zone en un comando operations list y luego grep 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 discos en us-central1-a , ordenados en orden descendente por nombre ( --sort-by ~NAME ), use un comando disks list :

gcloud compute disks list --sort-by ~NAME --filter="zone:(us-central1-a)"

En algunos escenarios, es posible que desee tener el enlace URI completo al recurso, como solicitudes en las que pasa el resultado de un comando list a otro comando o aplicación que toma una lista de enlaces de recursos. Para mostrar enlaces de recursos URI completos, use el indicador --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 la salida del comando list anterior dentro de un comando que elimina instancias, use:

gcloud compute instances delete $(gcloud compute instances list --uri --filter="name~'^example-.*'")

Ejemplos de comandos describe

Para obtener detalles sobre una sola instancia, especifique la instancia, incluida la zona. Por ejemplo, para devolver información sobre la instancia denominada "ejemplo-instancia" en la zona "asia-east1-b", puede usar el comando instances describe :

gcloud compute instances describe example-instance --zone asia-east1-b

De forma predeterminada, esto devuelve salida YAML. Para cambiar la salida a JSON o texto (una propiedad por línea), use el indicador --format . Por ejemplo, para devolver una salida de texto para la misma instancia, use:

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
...

Para obtener detalles sobre una operación específica, use 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 use 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
...

El siguiente comando 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"
   ...
}

Comprobar qué usuario está autorizado como

Utilice el siguiente comando para averiguar a qué cuenta está autorizado: utilice:

gcloud auth list

Revocar un token de actualización

Para revocar las credenciales de una cuenta en la máquina donde utiliza la CLI de Google Cloud, utilice:

gcloud auth revoke

Esto te obligará a volver a autenticar usando gcloud init .

También puedes revocar el permiso para que la CLI de gcloud acceda a tus recursos. Puede hacer esto, por ejemplo, si sus tokens de actualización están comprometidos. Para revocar el permiso para la CLI de gcloud:

  1. Inicie sesión en la página de su cuenta de Google .
  2. Haga clic en Seguridad y luego haga clic en Ver todo en la sección Permisos de la cuenta .
  3. Seleccione Google Cloud SDK y haga clic en Revocar acceso .

Reiniciar una instancia

Para restablecer una instancia llamada "ejemplo-instancia" en la zona "us-central1-a", use el comando instances reset :

gcloud compute instances reset example-instance --zone us-central1-a

Para obtener información sobre las implicaciones de un restablecimiento, lea la documentación Restablecer una instancia .