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
:
-
Gunakan perintah gcloud app instances enable-debug dalam men-debug VM untuk instance dan versi tertentu, sebagai berikut:
Ganti PROJECT-ID dengan project ID Anda sendiri, dan ikuti petunjuk untuk menentukan versi instance yang akan di-debug.gcloud app --project PROJECT-ID instances enable-debug
-
Setelah selesai proses debug, nonaktifkan mode debug sebagai berikut:
Ikuti petunjuk untuk menentukan versi instancegcloud app --project PROJECT-ID instances disable-debug
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:
Buka halaman instance konsol Google Cloud untuk project Anda:
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.
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.
Di jendela terminal, cantumkan container yang berjalan dalam instance:
sudo docker ps
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.Opsional, cantumkan informasi logging untuk aplikasi Anda dengan memanggil:
sudo docker logs CONTAINER-NAME
Mulai shell dalam container yang menjalankan kode Anda:
sudo docker exec -it CONTAINER-NAME /bin/bash
Setelah selesai proses debug, masukkan
exit
untuk keluar dari penampung, laluexit
lagi untuk keluar dari sesi SSH.Nonaktifkan proses debug untuk instance agar instance dapat melanjutkan operasi normal.
gcloud
Untuk terhubung ke instance menggunakan gcloud:
Dengan instance yang diaktifkan untuk proses debug, panggil perintah:
gcloud beta app instances --project PROJECT-ID ssh INSTANCE-NAME --service SERVICE --version VERSION
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.
Di jendela terminal, cantumkan container yang berjalan dalam instance:
sudo docker ps
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.Opsional, cantumkan informasi logging untuk aplikasi Anda dengan memanggil:
sudo docker logs CONTAINER-NAME
Mulai shell dalam container yang menjalankan kode Anda:
docker exec -it CONTAINER-NAME /bin/bash
Setelah selesai proses debug, masukkan
exit
untuk keluar dari penampung, laluexit
lagi untuk keluar dari sesi SSH.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.