tips penggunaan gcloud compute


Halaman ini berisi tips yang mungkin berguna saat Anda menggunakan alat command line gcloud untuk mengelola resource Compute Engine. Untuk mengetahui daftar lengkap dari semua flag dan perintahgcloud compute yang tersedia, Anda dapat menggunakan bantuan perintah bawaan (--help) atau dokumentasi referensi yang dipublikasikan, ataudokumentasi inti gcloud.

Sebelum memulai

  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

Mengambil informasi tentang resource

Anda dapat mengambil informasi resource Compute Engine dengan dua cara: menggunakan perintah list untuk menampilkan daftar resource dan menggunakan perintah describe untuk menampilkan detail tentang satu resource tertentu.

Mengambil resource dengan perintah list

Perintah list dirancang untuk menampilkan tabel yang berisi data paling relevan dan dapat dibaca manusia untuk resource yang diminta. Anda juga dapat memfilter hasil untuk menampilkan daftar yang lebih pendek dengan hasil yang lebih relevan.

Pemfilteran ekspresi reguler untuk nama
Anda dapat menggunakan sintaksis RE2 untuk mencocokkan nama resource (misalnya, nama instance atau disk). Lihat perintah gcloud compute instances list.
Flag Perintah
--limit

Jumlah hasil maksimum yang akan ditampilkan. Flag ini sangat berguna saat digunakan dengan flag --sort-by seperti yang dijelaskan di bagian Mengambil resource dengan perintah deskripsi.

--sort-by SORT_BY

Kolom untuk mengurutkan, jika ada. Untuk melakukan pengurutan dengan urutan menurun, awali nilai dengan tanda gelombang ("~"). Flag ini akan berinteraksi dengan flag lain yang diterapkan dalam urutan ini: --flatten,--sort-by, --filter, --limit.

Mengambil resource dengan perintah describe

Perintah describe dirancang untuk menampilkan data tentang satu resource. Anda harus memberikan nama resource dalam perintah describe. Jika tidak dapat mengingat nama resource, Anda dapat menjalankan perintah list untuk mendapatkan daftar resource. Misalnya, dua perintah berikut mengilustrasikan skenario saat Anda dapat mencantumkan image untuk mendapatkan nama image dan project terkait sehingga Anda dapat memberikannya sebagai input untuk perintah 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

Output default dari perintah describe adalah format YAML, tetapi Anda dapat menggunakan flag --format untuk memilih antara format output JSON, YAML, dan teks. Output berformat JSON dapat berguna jika Anda mengurai output, sedangkan output berformat teks akan menempatkan setiap properti di baris terpisah.

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

Contoh

Contoh perintah list

Saat membuat daftar resource, Anda akan mendapatkan tabel yang berisi data ringkasan yang mudah dibaca. Misalnya, untuk menampilkan data ringkasan tentang instance di project Anda, gunakan perintah 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

Anda dapat memfilter hasil dari perintah list dengan ekspresi reguler, dengan menyertakan flag --filter dengan operator key ~ value. Misalnya, filter daftar instance agar hanya menyertakan instance yang mengandung kata "test" dalam nama instance:

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

Untuk menampilkan daftar operasi zona yang memiliki status dari DONE dan tidak memiliki httpStatus dari 200, terapkan filter zone pada perintah operations list, lalu grep hasilnya:

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

Untuk mendapatkan daftar disk di us-central1-a yang diurutkan dalam urutan menurun berdasarkan nama (--sort-by ~NAME), gunakan perintah disks list:

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

Dalam beberapa skenario, Anda mungkin ingin memiliki link URI lengkap ke resource tersebut, seperti permintaan yang meneruskan output dari perintah list ke perintah atau aplikasi lain yang mengambil daftar resource link. Untuk menampilkan link resource URI yang lengkap, gunakan flag --uri dengan perintah 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

Untuk menggunakan output perintah list yang sebelumnya dalam perintah yang menghapus instance, gunakan:

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

Contoh perintah describe

Untuk mendapatkan detail tentang satu instance saja, tentukan instance tersebut, termasuk zona-nya. Misalnya, untuk menampilkan informasi tentang instance bernama "example-instance" di zona "asia-east1-b", Anda dapat menggunakan perintah instances describe:

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

Secara default, ini akan menampilkan output YAML. Untuk mengubah output ke JSON atau teks (satu properti per baris), gunakan flag --format. Misalnya, untuk menampilkan output teks untuk instance yang sama, gunakan:

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

Untuk mendapatkan detail tentang operasi tertentu, gunakan perintah operations list untuk menemukan URI operasi yang sepenuhnya memenuhi syarat:

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

Lalu, gunakan URI dalam perintah 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
...

Perintah berikut mendapatkan setelan instance dalam format 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"
   ...
}

Memeriksa pengguna mana yang Anda beri otorisasi

Untuk mencari tahu akun mana yang Anda beri otorisasi, gunakan perintah berikut:

gcloud auth list

Mencabut token refresh

Untuk mencabut kredensial akun di komputer tempat Anda menggunakan Google Cloud CLI, gunakan:

gcloud auth revoke

Hal ini akan memaksa Anda untuk menggunakan autentikasi ulang menggunakan gcloud init.

Anda juga dapat mencabut izin gcloud CLI agar tidak dapat mengakses resource Anda. Anda dapat melakukannya, misalnya jika token refresh Anda disusupi. Untuk mencabut izin gcloud CLI:

  1. Login ke halaman Akun Google Anda.
  2. Klik Keamanan, lalu klik Lihat semua di bagian Izin akun.
  3. Pilih Google Cloud SDK, lalu klik Cabut Akses.

Memulai ulang instance

Untuk mereset instance bernama "example-instance" di zona "us-central1-a", gunakan perintah instances reset:

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

Untuk mengetahui informasi tentang implikasi dari tindakan reset, baca dokumentasi Mereset instance.