Suggerimenti per l'utilizzo di gcloud compute


Questa pagina contiene suggerimenti che potrebbero essere utili quando utilizzi lo strumento a riga di comando gcloud per gestire le risorse Compute Engine. Per un elenco completo di tutti i flag e i comandi gcloud compute disponibili, puoi utilizzare la guida ai comandi integrata (--help) o la documentazione di riferimento pubblicata o la documentazione di gcloud core.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

Recupero delle informazioni sulle risorse

Puoi recuperare le informazioni sulle risorse di Compute Engine in due modi: utilizzando il comando list per restituire un elenco di risorse e il comando describe per restituire i dettagli di una risorsa specifica.

Recupero delle risorse con i comandi list

I comandi list sono progettati per restituire una tabella leggibile dai dati più pertinenti per le risorse richieste. Se vuoi, puoi filtrare i risultati per visualizzare un elenco più breve con risultati più pertinenti.

Filtri basati su espressioni regolari per i nomi
Puoi utilizzare la sintassi RE2 per associare i nomi delle risorse (ad esempio i nomi di istanze o dischi). Consulta il comando gcloud compute instances list.
Flag dei comandi
--limit

Il numero massimo di risultati da restituire. Questo flag è particolarmente utile se utilizzato con il flag --sort-by come descritto nella sezione Recupero delle risorse con i comandi describe.

--sort-by SORT_BY

Un campo in base al quale ordinare, se applicabile. Per eseguire un'ordinamento in ordine decrescente, anteponi al valore un a capo ("~"). Questo flag interagisce con altri flag che vengono applicati in questo ordine: --flatten,--sort-by, --filter, --limit.

Recupero delle risorse con i comandi describe

I comandi describe sono progettati per visualizzare i dati relativi a una risorsa. Devi fornire il nome della risorsa nel comando describe. Se non riesci a ricordare il nome della risorsa, puoi eseguire un comando list per ottenere un elenco di risorse. Ad esempio, i due comandi seguenti illustrano uno scenario in cui puoi elencare le immagini per ottenere il nome di un'immagine e il relativo progetto associato in modo da poterli fornire come input a un 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

L'output predefinito dei comandi describe è in formato YAML, ma puoi utilizzare il flag --format per scegliere tra i formati di output JSON, YAML e di testo. L'output in formato JSON può essere utile se stai analizzando l'output, mentre l'output in formato testo inserisce ogni proprietà su una riga separata.

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"
  ]
}

Esempi

Esempi di comandi list

Quando elenchi le risorse, ottieni una tabella di dati di riepilogo facile da leggere. Ad esempio, per restituire i dati di riepilogo sulle istanze nel tuo progetto, utilizza il 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

Puoi filtrare i risultati dei comandi list con espressioni regolari includendo il flag --filter con un operatore key ~ value. Ad esempio, filtra l'elenco di istanze in modo da includere solo quelle con "test" nel 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

Per restituire un elenco di operazioni di zone con un valore status pari a DONE e senza un valore httpStatus pari a 200, applica un filtro zone a un comando operations list, quindi grep i risultati:

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

Per ottenere un elenco di dischi in us-central1-a, ordinati in ordine decrescente per nome (--sort-by ~NAME), utilizza un comando disks list:

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

In alcuni scenari, potresti voler avere il link URI completo alla risorsa, ad esempio nelle richieste in cui passi l'output di un comando list a un altro comando o a un'applicazione che accetta un elenco di link alle risorse. Per mostrare i link alle risorse URI completi, utilizza il flag --uri con un 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

Per utilizzare l'output comando list precedente all'interno di un comando che elimina le istanze, utilizza:

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

Esempi di comandi describe

Per visualizzare i dettagli di una sola istanza, specifica l'istanza, inclusa la zona. Ad esempio, per restituire informazioni sull'istanza denominata "example-instance" nella zona "asia-east1-b", puoi utilizzare il comando instances describe:

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

Per impostazione predefinita, restituisce l'output YAML. Per modificare l'output in JSON o testo (una proprietà per riga), utilizza il flag --format. Ad esempio, per restituire l'output di testo per la stessa istanza, utilizza:

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

Per ottenere i dettagli di un'operazione specifica, utilizza il comando operations list per trovare l'URI completo dell'operazione:

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

Quindi utilizza l'URI in un 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
...

Il seguente comando recupera le impostazioni dell'istanza in 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"
   ...
}

Verificare con quale utente disponi dell'autorizzazione

Utilizza il seguente comando per scoprire con quale account disponi dell'autorizzazione:

gcloud auth list

Revocare un token di aggiornamento

Per revocare le credenziali di un account sulla macchina in cui utilizzi Google Cloud CLI, utilizza:

gcloud auth revoke

In questo modo dovrai eseguire nuovamente l'autenticazione utilizzando gcloud init.

Puoi anche revocare l'autorizzazione per l'accesso alle tue risorse da parte dell'interfaccia alla gcloud CLI. Ad esempio, potresti farlo se i token di aggiornamento sono compromessi. Per revocare l'autorizzazione per l'interfaccia alla gcloud CLI:

  1. Accedi alla pagina del tuo Account Google.
  2. Fai clic su Sicurezza e poi su Visualizza tutto nella sezione Autorizzazioni account.
  3. Seleziona Google Cloud SDK e fai clic su Revoca accesso.

Riavviare un'istanza

Per reimpostare un'istanza denominata "example-instance" nella zona "us-central1-a", utilizza il comando instances reset:

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

Per informazioni sulle implicazioni di un ripristino dei dati di fabbrica, consulta la documentazione su come ripristinare i dati di fabbrica di un'istanza.