Esta página contém dicas que podem ser úteis quando você usa a ferramenta de linha de comando gcloud
para gerenciar os recursos do Compute Engine. Para uma lista completa de todos os comandos e sinalizações da gcloud compute
disponíveis, use o comando integrado "help" (--help
), a documentação de referência publicada ou a documentação principal da gcloud.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Como buscar informações sobre recursos
Há duas maneiras de buscar informações sobre os 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
são projetados para retornar uma tabela legível com os dados mais relevantes dos recursos solicitados. Se quiser, é 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 corresponder aos nomes de recursos (por exemplo, nomes de instâncias ou discos). Consulte o comando
gcloud compute instances list
. - Sinalizações do comando
--limit
O número máximo de resultados a serem retornados. Essa sinalização é especialmente útil quando utilizada 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, adicione um til ("~") antes do valor. Essa sinalização interage com outras sinalizações aplicadas nesta ordem:
--flatten
,--sort-by
,--filter
,--limit
.
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 cenário em que é possível listar imagens para encontrar o nome de uma imagem e o projeto associado a ela, assim é possível fornecer essas informações como entradas em 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 é possível usar a sinalização --format
para optar entre os formatos de saída 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 de resumo sobre instâncias no 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
Os resultados dos comandos list
podem ser filtrados 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 e2-standard-2 10.240.118.207 23.251.153.172 RUNNING
Para retornar uma lista de operações de zona com um status
de DONE
e sem
um httpStatus
de 200
, aplique um filtro zone
em um
comando operations list
e
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 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, pode ser útil ter o link do URI completo do recurso, como nas solicitações em que você está transmitindo a saída de um comando list
para outro comando ou aplicativo que receba uma lista de links de recursos.
Para mostrar os links de recurso de URI completos, use a sinalização --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 de 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
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 a saída para JSON ou texto (uma propriedade por linha), use a sinalização --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 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 recebe as configurações da 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" ... }
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 em que você usa a CLI do Google Cloud, use:
gcloud auth revoke
Isso forçará você a usar a reautenticação usando gcloud init
.
Se necessário, também revogue a permissão da CLI gcloud para acessar os recursos. Se os tokens de atualização estiverem comprometidos, talvez isso seja necessário. Para revogar a permissão da CLI gcloud:
- Faça login na página Conta do Google.
- Clique em Segurança e, em seguida, em Ver tudo na seção Permissões da conta.
- 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.