Dicas de uso do gcloud compute

Esta página contém dicas que podem ser úteis quando você usa a ferramenta de linha de comando gcloud para gerenciar seus recursos do Google Compute Engine. Para ver uma lista completa de todos os comandos e sinalizações de gcloud compute, use o comando integrado help (--help), a documentação de referência publicada ou a documentação principal do gcloud.

Antes de começar

Como buscar informações sobre recursos

Existem duas maneiras de buscar informações sobre recursos do Compute Engine: usando o comando list para retornar uma lista de recursos e usando o comando describe para retornar detalhes sobre um recurso específico.

Como buscar recursos com os comandos list

Os comandos list foram desenvolvidos para retornar uma tabela legível dos dados mais relevantes dos recursos solicitados. Opcionalmente, é possível filtrar os resultados para retornar uma lista menor com resultados mais relevantes.

Expressão regular para filtragem por nomes
Use a sintaxe RE2 para encontrar nomes de recurso correspondentes, por exemplo, nomes de instância ou disco. Consulte as listas de instâncias de computação do gcloud.
Sinalizações do comando
--limit

O número máximo de resultados a serem retornados. Essa sinalização é útil principalmente quando usada com a sinalização --sort-by, descrita na seção Como buscar recursos com os comandos describe.

--sort-by SORT_BY

Um campo a servir de classificação, se aplicável. Para classificar em ordem decrescente, inclua um til ("~") antes do valor.

Como buscar recursos com os comandos describe

Os comandos describe foram desenvolvidos para exibir dados sobre um recurso. Forneça o nome do recurso no comando describe. Se não conseguir se lembrar do nome, execute o comando list para mostrar uma lista de recursos. Por exemplo, os dois comandos a seguir ilustram um caso em que você precisa de uma lista de imagens para ver o nome de uma imagem e o projeto associado a ela. Essas informações podem ser usadas como entradas para o 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

A saída padrão dos comandos describe está no formato YAML. Se você quiser outros formatos de saída, use o sinalizador --format para escolher entre JSON, YAML e texto. A saída formatada JSON é útil na análise da saída e o texto formatado coloca cada propriedade em uma linha 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"
  ]
}

Exemplos

Exemplos de comandos list

Ao listar os recursos, você recebe uma tabela de dados resumidos de fácil leitura. Por exemplo, para retornar dados resumidos das instâncias do seu projeto, use o comando instances list:

gcloud compute instances list
NAME               ZONE          MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
example-instance   asia-east1-b  n1-standard-1 10.240.95.199  107.167.182.44  RUNNING
example-instance2  us-central1-a n1-standard-1 10.240.173.254 23.251.148.121  RUNNING
test-instance      us-central1-a n1-standard-1 10.240.118.207 23.251.153.172  RUNNING

Filtre resultados de comandos list com expressões regulares incluindo a sinalização --filter com um operador key ~ value. Por exemplo, filtre a lista de instâncias para incluir apenas aquelas com "test" no nome:

gcloud compute instances list --filter="name ~ .*test.*"
NAME           ZONE          MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
test-instance  us-central1-a n1-standard-1 10.240.118.207 23.251.153.172  RUNNING

Para retornar uma lista de operações de zonas que têm um status de DONE e não têm um httpStatus de 200, aplique um filtro zone em um comando operations list e grep para os resultados:

gcloud compute operations list --filter="zone:(us-central1-a)" | grep DONE | grep 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 uma lista de discos em us-central1-a, classificados em ordem decrescente pelo nome (--sort-by ~NAME), use um comando disks list:

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

Em alguns casos, talvez você precise do link para o recurso com URI completo. Por exemplo, se a saída de um comando list for transmitida para outro comando ou aplicativo que use uma lista de links de recursos. Para mostrar esses links com URI completo, use a sinalização --uri com o comando list.

gcloud compute instances list --uri --filter="name~'^example-.*'"
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance1
https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance2

Para usar a resposta ao comando list anterior em um comando que exclua instâncias, use:

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

Exemplos de comandos describe

Especifique uma instância, incluindo a zona, para receber detalhes sobre ela. Por exemplo, para retornar informações sobre a instância chamada "example-instance" na zona "asia-east1-b", use o comando instances describe:

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

Com esse comando, uma saída YAML é retornada por padrão. Para alterar esse formato para JSON ou texto (uma propriedade por linha), use o sinalizador --format. Por exemplo, para retornar a saída no formato texto para a mesma instância, 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 receber detalhes sobre uma operação específica, use o comando operations list para encontrar o URI totalmente qualificado:

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

Em seguida, use o URI no 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
...

Com o comando a seguir, as configurações da instância são recebidas no 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"
   ...
}

Como verificar com qual usuário você tem autorização de acesso

Use o seguinte comando para descobrir com qual conta você tem autorização de acesso:

gcloud auth list

Como revogar um token de atualização

Para revogar as credenciais de uma conta na máquina onde você usa o Cloud SDK:

gcloud auth revoke

Isso torna obrigatória a reautenticação com o gcloud init.

Se necessário, também revogue a permissão do Cloud SDK para acessar os seus recursos. Se os tokens de atualização estiverem comprometidos, talvez isso seja necessário. Para revogar a permissão do Cloud SDK:

  1. Faça login na página Conta do Google.
  2. Clique em Segurança e, em seguida, em Ver tudo na seção Permissões da conta.
  3. Selecione Google Cloud SDK e clique em Revogar acesso.

Como reinicializar uma instância

Para redefinir uma instância chamada "example-instance" na zona "us-central1-a", use o comando instances reset:

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

Para saber mais sobre as implicações de uma redefinição, leia a documentação Redefinir uma instância.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine