Dicas de uso do gcloud computacional


Esta página contém dicas que podem ser úteis ao usar a ferramenta de linha de comando gcloud para gerenciar os recursos do Compute Engine. Para obter uma lista completa de todos os sinalizadores e comandos gcloud compute disponíveis, você pode usar o comando integrado help ( --help ) ou a documentação de referência publicada ou a documentação principal do gcloud .

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
    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.

Buscando informações sobre recursos

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

Buscando recursos com comandos list

Os comandos list são projetados para retornar uma tabela legível dos dados mais relevantes para os recursos solicitados. Opcionalmente, você pode filtrar seus resultados para retornar uma lista mais curta com resultados mais relevantes.

Filtragem de expressões regulares para nomes
Você pode usar a sintaxe RE2 para corresponder nomes de recursos (por exemplo, nomes de instância ou disco). Consulte o comando gcloud compute instances list .
Sinalizadores de comando
--limit

O número máximo de resultados a serem retornados. Este sinalizador é particularmente útil quando usado com o sinalizador --sort-by conforme descrito na seção Buscando recursos com comandos de descrição .

--sort-by SORT_BY

Um campo pelo qual classificar, se aplicável. Para executar uma classificação em ordem decrescente, prefixe o valor com um til ("~"). Este sinalizador interage com outros sinalizadores aplicados nesta ordem: --flatten , --sort-by , --filter , --limit .

Buscando recursos com comandos describe

Os comandos describe são projetados para exibir dados sobre um recurso. Você deve fornecer o nome do recurso no comando describe . Se não se lembrar do nome do recurso, você poderá executar um comando list para obter uma lista de recursos. Por exemplo, os dois comandos a seguir ilustram um cenário em que você pode listar imagens para obter um nome de imagem e seu projeto associado, para que possa fornecê-los como entradas para um 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 é o formato YAML, mas você pode usar o sinalizador --format para escolher entre JSON, YAML e formatos de saída de texto. A saída formatada em JSON pode ser útil se você estiver analisando a saída, enquanto a saída formatada em texto 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 recursos, você obtém uma tabela de dados resumidos de fácil leitura. Por exemplo, para retornar dados resumidos sobre instâncias em 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  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

Você pode filtrar resultados de comandos list com expressões regulares incluindo o sinalizador --filter com um operador key ~ value . Por exemplo, filtre a lista de instâncias para incluir apenas as instâncias com "teste" no nome da instância:

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 retornar uma lista de operações de zona com status DONE e sem httpStatus 200 , aplique um filtro zone em um comando operations list e, em seguida, grep nos 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 obter uma lista de discos em us-central1-a , classificados em ordem decrescente por nome ( --sort-by ~NAME ), use um comando disks list :

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

Em alguns cenários, talvez você queira ter o link URI completo para o recurso, como solicitações nas quais você passa a saída de um comando list para outro comando ou aplicativo que utiliza uma lista de links de recursos. Para mostrar links completos de recursos URI, use o sinalizador --uri com um 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 a saída do comando list anterior em um comando que exclui instâncias, use:

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

Exemplos de comandos describe

Para obter detalhes sobre apenas uma instância, especifique a instância, incluindo a zona. Por exemplo, para retornar informações sobre a instância chamada "example-instance" na zona "asia-east1-b", você pode usar o comando instances describe :

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

Por padrão, isso retorna a saída YAML. Para alterar a saída para JSON ou texto (uma propriedade por linha), use o sinalizador --format . Por exemplo, para retornar a saída de 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 obter detalhes sobre uma operação específica, use o comando operations list para localizar o URI totalmente qualificado da operação:

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

O comando a seguir obtém configurações de instância 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"
   ...
}

Verificando qual usuário você está autorizado como

Use o seguinte comando para descobrir em qual conta você está autorizado, use:

gcloud auth list

Revogando um token de atualização

Para revogar as credenciais de uma conta na máquina em que você está usando a CLI do Google Cloud, use:

gcloud auth revoke

Isso forçará você a usar a reautenticação usando gcloud init .

Você também pode revogar a permissão da CLI gcloud para acessar seus recursos. Você pode fazer isso se seus tokens de atualização estiverem comprometidos, por exemplo. Para revogar a permissão da CLI gcloud:

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

Reinicializando 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 obter informações sobre as implicações de uma redefinição, leia a documentação Redefinir uma instância .