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:
-
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.
-
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:
- Faça login na página da sua conta do Google .
- Clique em Segurança e em Ver tudo na seção Permissões da conta .
- 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 .