Anwendungstipps zu gcloud compute


Diese Seite enthält Tipps, die hilfreich sein könnten, wenn Sie das gcloud-Befehlszeilentool zum Verwalten Ihrer Compute Engine-Ressourcen verwenden. Eine vollständige Liste aller verfügbaren Flags und Befehle für gcloud compute finden Sie in der integrierten Hilfe (--help), in der veröffentlichten Referenzdokumentation oder in der Dokumentation zu gcloud core.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich wie folgt bei Compute Engine authentifizieren.
    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

Informationen zu Ressourcen abrufen

Informationen zu Compute Engine-Ressourcen können Sie auf zwei Arten abrufen: Mit dem Befehl list, um eine Liste von Ressourcen zurückzugeben, und mit dem Befehl describe, um Details zu einer bestimmten Ressource zurückzugeben.

Ressourcen mit list-Befehlen abrufen

Mit den list-Befehlen lässt sich eine für Menschen lesbare Tabelle der relevantesten Daten für die angeforderten Ressourcen abrufen. Die Ergebnisse lassen sich optional filtern, um eine kürzere Liste mit relevanteren Ergebnissen anzuzeigen.

Mit regulären Ausdrücken nach Namen filtern
Mit der RE2-Syntax können Sie Ressourcennamen wie beispielsweise Instanz- oder Laufwerknamen abgleichen. Weitere Informationen finden Sie im Abschnitt zum Befehl gcloud compute instances list.
Befehlsflags
--limit

Die maximale Anzahl von zurückzugebenden Ergebnissen. Dieses Flag ist speziell in Kombination mit dem Flag --sort-by nützlich, das im Abschnitt Ressourcen mit describe-Befehlen abrufen beschrieben wird.

--sort-by SORT_BY

Ein Feld, nach dem gegebenenfalls sortiert werden soll. Wenn in absteigender Reihenfolge sortiert werden soll, stellen Sie dem Wert eine Tilde ("~") voran. Dieses Flag interagiert mit anderen Flags, die in dieser Reihenfolge angewendet werden: --flatten, --sort-by, --filter, --limit.

Ressourcen mit describe-Befehlen abrufen

Über die describe-Befehle erhalten Sie Daten zu einer einzelnen Ressource. Den Namen der Ressource müssen Sie im Befehl describe angeben. Wenn Sie den Ressourcennamen nicht mehr wissen, können Sie mit dem Befehl list eine Liste der Ressourcen abrufen. Mit den beiden folgenden Befehlen können Sie z. B. Images auflisten, um einen Image-Namen und das zugehörige Projekt abzurufen, damit Sie sie in einem describe-Befehl angeben können:

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

Die Standardausgabe von describe-Befehlen hat das YAML-Format. Wenn Sie jedoch das --format-Flag verwenden, ist es möglich, zwischen JSON, YAML und Text als Ausgabeformat zu wählen. Eine Ausgabe im JSON-Format ist insbesondere dann nützlich, wenn die Ausgabe geparst wird, während bei der Ausgabe im Textformat jede Eigenschaft in einer separaten Zeile steht.

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

Beispiele

Beispiele für list-Befehle

Beim Auflisten von Ressourcen erhalten Sie eine übersichtliche Tabelle mit zusammengefassten Daten. Verwenden Sie z. B. den Befehl instances list, um Übersichtsdaten zu Instanzen im Projekt abzurufen:

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

Sie können Ergebnisse der list-Befehle mit regulären Ausdrücken filtern, wenn Sie das Flag --filter mit dem Operator key ~ value einbeziehen. Filtern Sie z. B. die Liste mit Instanzen, sodass nur die Instanzen mit "test" im Instanznamen einbezogen werden:

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

Wenn Sie eine Liste der Zonenvorgänge abrufen möchten, die DONE als status und nicht 200 als httpStatus haben, wenden Sie den Filter zone auf den Befehl operations list an. Wenden Sie anschließend auf das Ergebnis grep an:

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

Wenn Sie eine Liste mit Laufwerken in us-central1-a abrufen möchten, die in absteigender Reihenfolge nach dem Namen sortiert sind (--sort-by ~NAME), verwenden Sie den Befehl disks list:

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

Manchmal benötigen Sie den vollständigen URI-Link zur Ressource, z. B. bei Anfragen, bei denen Sie die Ausgabe eines list-Befehls an einen anderen Befehl oder eine andere Anwendung übergeben, der oder die eine Liste mit Ressourcenlinks übernimmt. Verwenden Sie zum Anzeigen der vollständigen URI-Ressourcenlinks das Flag --uri mit einem list-Befehl.

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

So verwenden Sie die vorangegangene Ausgabe des Befehls list mit einem Befehl, der Instanzen löscht:

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

Beispiele für describe-Befehle

Um Details zu nur einer Instanz abzurufen, geben Sie die Instanz einschließlich Zone an. Wenn Sie z. B. Informationen zur Instanz "example-instance" in der Zone "asia-east1-b" abrufen möchten, können Sie den Befehl instances describe verwenden:

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

Standardmäßig erfolgt die Ausgabe im YAML-Format. Um die Ausgabe in das JSON- oder Textformat (eine Eigenschaft pro Zeile) zu ändern, verwenden Sie das Flag --format. Um das Ergebnis für dieselbe Instanz im Textformat auszugeben, verwenden Sie Folgendes:

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

Wenn Sie Details zu einem bestimmten Vorgang abrufen möchten, verwenden Sie den Befehl operations list. Damit können Sie den vollqualifizierten URI des Vorgangs ermitteln:

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

Verwenden Sie den URI anschließend im Befehl 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
...

Mit dem folgenden Befehl werden die Instanzeinstellungen im JSON-Format (--format json) abgerufen.

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

Nutzerautorisierung prüfen

Mit dem folgenden Befehl ermitteln Sie, über welche Autorisierung Ihr Konto verfügt:

gcloud auth list

Aktualisierungstoken widerrufen

So widerrufen Sie die Anmeldedaten für ein Konto auf dem Computer, auf dem Sie die Google Cloud CLI verwenden:

gcloud auth revoke

Dadurch werden Sie zu einer erneuten Authentifizierung mit gcloud init gezwungen.

Sie können auch die Berechtigung der gcloud CLI für den Zugriff auf die Ressourcen widerrufen. Dies kann beispielsweise erforderlich sein, wenn Unbefugte in Besitz Ihres Aktualisierungstokens gelangt sind. So widerrufen Sie die Berechtigung für die gcloud CLI:

  1. Melden Sie sich auf der Seite für das Google-Konto an.
  2. Klicken Sie auf Sicherheit. Klicken Sie dann im Abschnitt Kontoberechtigungen auf Alle anzeigen.
  3. Wählen Sie Google Cloud SDK aus und klicken Sie auf Zugriff entziehen.

Instanz neu starten

Wenn Sie eine Instanz mit dem Namen "example-instance" in der Zone "us-central1-a" zurücksetzen möchten, verwenden Sie den Befehl instances reset:

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

Informationen zu den Auswirkungen einer Zurücksetzung finden Sie in der Dokumentation Instanz zurücksetzen.