Men-debug instance

Anda dapat mengaktifkan mode debug untuk VM. Dalam mode debug, akun utama yang memiliki peran Pemilik, Editor, dan Admin App Engine di project memiliki akses root ke VM. Saat mode debug diaktifkan, peluncuran otomatis update sistem operasi dan patch keamanan akan dinonaktifkan. Namun, VM masih menjadi bagian dari kumpulan load balancer, dan terus menerima permintaan eksternal.

Setiap kali Anda mengaktifkan atau menonaktifkan proses debug, peristiwa "Aktifkan/nonaktifkan proses debug instance VM" akan muncul di konsol Google Cloud dan peristiwa tersebut akan dicatat dalam file /var/log/syslog.log VM.

Mengaktifkan dan menonaktifkan mode debug

Anda dapat menggunakan gcloud untuk mengaktifkan dan menonaktifkan mode debug untuk instance. Untuk men-debug instance, peran Anda harus berisi izin appengine.instances.enableDebug.

Untuk mengaktifkan dan menonaktifkan mode debug di gcloud:

  1. Gunakan perintah gcloud app instances enable-debug dalam men-debug VM untuk instance dan versi tertentu, sebagai berikut:
    gcloud app --project PROJECT-ID instances enable-debug
    Ganti PROJECT-ID dengan project ID Anda sendiri, dan ikuti petunjuk untuk menentukan versi instance yang akan di-debug.
  2. Setelah selesai proses debug, nonaktifkan mode debug sebagai berikut:
    gcloud app --project PROJECT-ID instances disable-debug
    Ikuti petunjuk untuk menentukan versi instance

Saat Anda menonaktifkan mode debug, VM akan dihentikan dan instance baru aplikasi Anda akan dimulai, yang berjalan pada VM baru yang bersih.

Menghubungkan ke instance

Konsol

Untuk terhubung ke instance di konsol:

  1. Buka halaman instance konsol Google Cloud untuk project Anda:

    Buka halaman instance

  2. Klik SSH di ujung kanan baris yang berisi instance yang ingin diakses:

    Tindakan ini akan menempatkan instance ke mode debug, dan membuka sesi SSH untuk instance tersebut di jendela terminal.

    Anda juga dapat memilih opsi yang berbeda untuk memulai sesi SSH dari menu drop-down.

  3. Pada tahap ini, Anda berada di host instance, yang memiliki beberapa containers yang berjalan di dalamnya. Lihat bagian Memahami container umum di samping untuk mengetahui informasi selengkapnya tentang ini.

  4. Di jendela terminal, cantumkan container yang berjalan dalam instance:

    sudo docker ps

  5. Output perintah sudo docker ps mencantumkan setiap container menurut baris; temukan baris yang berisi project ID: ini adalah container yang menjalankan kode Anda. Perhatikan NAME container ini.

  6. Opsional, cantumkan informasi logging untuk aplikasi Anda dengan memanggil:

    sudo docker logs CONTAINER-NAME

  7. Mulai shell dalam container yang menjalankan kode Anda:

    sudo docker exec -it CONTAINER-NAME /bin/bash

  8. Setelah selesai proses debug, masukkan exit untuk keluar dari penampung, lalu exit lagi untuk keluar dari sesi SSH.

  9. Nonaktifkan proses debug untuk instance agar instance dapat melanjutkan operasi normal.

gcloud

Untuk terhubung ke instance menggunakan gcloud:

  1. Dengan instance yang diaktifkan untuk proses debug, panggil perintah:

    gcloud beta app instances --project PROJECT-ID ssh INSTANCE-NAME --service SERVICE --version VERSION

  2. Pada tahap ini, Anda berada di host instance, yang memiliki beberapa containers yang berjalan. Lihat bagian Memahami container umum di samping untuk mengetahui informasi selengkapnya tentang ini.

  3. Di jendela terminal, cantumkan container yang berjalan dalam instance:

    sudo docker ps

  4. Output perintah sudo docker ps mencantumkan setiap container menurut baris; temukan baris yang berisi project ID: ini adalah container yang menjalankan kode Anda. Perhatikan NAME container ini.

  5. Opsional, cantumkan informasi logging untuk aplikasi Anda dengan memanggil:

    sudo docker logs CONTAINER-NAME

  6. Mulai shell dalam container yang menjalankan kode Anda:

    docker exec -it CONTAINER-NAME /bin/bash

  7. Setelah selesai proses debug, masukkan exit untuk keluar dari penampung, lalu exit lagi untuk keluar dari sesi SSH.

  8. Nonaktifkan proses debug untuk instance agar instance dapat melanjutkan operasi normal.

Memahami container umum

Selain container yang menjalankan kode aplikasi, instance Anda juga dapat memiliki container berikut:

Container dan Kode Sumber Deskripsi
cloud-sql Memastikan koneksi aman ke instance Cloud SQL Anda.
fluentd_logger Agen logging.
nginx_proxy Permintaan proxy ke aplikasi.
opentelemetry-collector Menerima, memproses, dan mengekspor data telemetri.
stackdriver-monitoring-agent Mengumpulkan, menyimpan, dan memantau informasi sistem.

Perhatikan bahwa container sidecar ini dapat berubah tanpa pemberitahuan.