Esta página contém sugestões que podem ser úteis quando usa a gcloud
ferramenta de linha de comandos para gerir os recursos do Compute Engine. Para ver uma lista completa de todos os sinalizadores e comandos gcloud compute
disponíveis, pode usar a ajuda de comandos integrada (--help
), a documentação de referência publicada ou a documentação principal do gcloud.
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
-
A obter informações sobre recursos
Pode obter informações sobre os recursos do Compute Engine de duas formas:
usando o comando list
para devolver uma lista de recursos e usando o comando describe
para devolver detalhes sobre um recurso específico.
Obter recursos com comandos list
Os comandos list
foram concebidos para devolver uma tabela legível dos dados mais relevantes para os recursos pedidos. Opcionalmente, pode filtrar os resultados para devolver uma lista mais curta com resultados mais relevantes.
- Filtragem de expressões regulares para nomes
- Pode usar a sintaxe RE2 para fazer corresponder
nomes de recursos (por exemplo, nomes de instâncias ou discos). Consulte o comando
gcloud compute instances list
. - Sinalizadores de comandos
--limit
O número máximo de resultados a devolver. Esta flag é particularmente útil quando usada com a flag
--sort-by
, conforme descrito na secção Obter recursos com comandos describe.--sort-by SORT_BY
Um campo pelo qual ordenar, se aplicável. Para fazer uma ordenação descendente, adicione um til ("~") ao valor. Esta flag interage com outras flags que são aplicadas nesta ordem:
--flatten
,--sort-by
,--filter
,--limit
.
Obter recursos com comandos describe
Os comandos describe
foram concebidos para apresentar dados sobre um recurso. Tem
de indicar o nome do recurso no comando describe
. Se não se lembrar do nome do recurso, pode executar um comando list
para obter uma lista de recursos. Por exemplo, os dois comandos seguintes ilustram um cenário em que pode listar imagens para obter o nome de uma imagem e o respetivo projeto associado, de modo a poder 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 predefinida dos comandos describe
é o formato YAML, mas pode usar a flag --format
para escolher entre os formatos de saída JSON, YAML e de texto.
A saída formatada em JSON pode ser útil se estiver a analisar a saída, enquanto a saída formatada em texto coloca cada propriedade numa 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
Quando lista recursos, recebe uma tabela de fácil leitura com dados de resumo. Por exemplo, para devolver dados de resumo sobre instâncias no 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
Pode filtrar os resultados dos comandos list
com expressões regulares incluindo a flag --filter
com um operador key ~ value
. Por exemplo, filtre a lista de instâncias para incluir apenas as instâncias com "test" 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 devolver uma lista de operações de zonas que tenham um status
de DONE
e não tenham um httpStatus
de 200
, aplique um filtro zone
num comando operations list
e, de seguida, grep
os 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
, ordenada por ordem descendente 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 querer ter o link URI completo para o recurso, como pedidos em que está a transmitir o resultado de um comando para outro comando ou aplicação que recebe uma lista de links de recursos.list
Para mostrar links de recursos URI completos, 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 num comando que elimina 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 devolver informações sobre a instância denominada "example-instance" na zona "asia-east1-b", pode usar o comando instances describe
:
gcloud compute instances describe example-instance --zone asia-east1-b
Por predefinição, devolve a saída YAML. Para alterar a saída para JSON ou texto (uma propriedade por linha), use a flag --format
. Por exemplo, para devolver 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 encontrar 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 num 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 seguinte obtém as definiçõ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" ... }
Verificar como utilizador tem autorização
Use o seguinte comando para saber a conta com a qual tem autorização:
gcloud auth list
Revogar um token de atualização
Para revogar as credenciais de uma conta na máquina onde está a usar a CLI Google Cloud, use:
gcloud auth revoke
Isto obriga-o a voltar a autenticar-se através de gcloud init
.
Também pode revogar a autorização da CLI gcloud para aceder aos seus recursos. Pode fazê-lo se, por exemplo, os seus tokens de atualização forem comprometidos. Para revogar a autorização para a CLI gcloud:
- Inicie sessão na página da sua Conta Google.
- Clique em Segurança e, de seguida, em Ver tudo na secção Autorizações da conta.
- Selecione SDK do Google Cloud e clique em Revogar acesso.
Reiniciar uma instância
Para repor uma instância denominada "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 reposição, leia a documentação Reponha uma instância.