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 è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. 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 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 abbinare 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 le istanze con "test" nel nome dell'istanza:

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 del 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 a riga di comando gcloud. Ad esempio, potresti farlo se i token di aggiornamento sono compromessi. Per revocare l'autorizzazione per l'interfaccia a riga di comando gcloud:

  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.