Men-debug layanan Cloud Run di Cloud Code untuk VS Code

Cloud Code untuk VS Code memungkinkan Anda melakukan debug aplikasi yang di-deploy ke Cloud Run dengan mudah menggunakan skaffold debug. Untuk mengetahui informasi mendetail tentang Skaffold debugging, lihat Melakukan Debug dengan Skaffold.

Anda tidak perlu menyelesaikan penyiapan manual seperti menyiapkan penerusan port atau menyisipkan argumen debug khusus bahasa. Proses debug memerlukan aplikasi Cloud Run yang siap untuk Cloud Code yang menyertakan file konfigurasi skaffold.yaml dan file launch.json berjenis cloudcode.cloudrun.

Melakukan debug layanan Cloud Run

Untuk melakukan debug layanan, ikuti langkah-langkah berikut:

  1. Untuk menjalankan layanan dan melampirkan sesi debugger ke layanan, buka palet perintah (tekan Ctrl/Cmd+Shift+P atau klik View > Command Palette), lalu jalankan perintah Debug on Cloud Run Emulator.

  2. Dalam dialog Run/Debug on Cloud Run Emulator, tetapkan spesifikasi untuk konfigurasi Anda:

    • Pilih Docker atau Buildpacks sebagai builder Anda, lalu tentukan Dockerfile atau Buildpack Anda.
    • (Opsional) Untuk menentukan target Dockerfile atau argumen build, klik Show Advanced Build Settings, lalu tentukan target atau argumen.
    • (Opsional) Untuk menentukan nama layanan kustom, URL image container, port container, identitas untuk layanan yang akan digunakan, jumlah CPU khusus, atau jumlah memori yang akan dialokasikan ke setiap instance container, klik Show Advanced Service Settings, lalu tentukan nilainya.
    • (Opsional) Untuk menentukan variabel lingkungan, klik Show Advanced Service Settings, klik Environment Variables, lalu tentukan nilainya.
    • (Opsional) Untuk menentukan koneksi Cloud SQL, klik Connections, lalu tentukan satu koneksi per baris.
    • (Opsional) Agar VS Code membuat ulang sesi debug setelah Anda menyimpan perubahan pada kode, centang kotak Automatically re-build and re-run on changes.

    Jika ingin menyesuaikan lebih lanjut cara layanan Anda dijalankan, Anda dapat mengedit file launch.json Anda secara langsung.

  3. Untuk memulai proses debug layanan, klik Debug.

  4. Jika diminta, autentikasi kredensial Anda untuk menjalankan dan melakukan debug aplikasi secara lokal.

  5. Untuk setiap container yang dapat di-debug dalam layanan Anda, konfirmasi atau masukkan direktori di container jarak jauh tempat program yang ingin Anda debug ditemukan.

    Atau, Anda dapat menekan ESC untuk melewati proses debug container.

    Prompt Root Jarak Jauh

    Cloud Code melampirkan sesi debug untuk setiap container yang dapat di-debug dalam layanan.

    Secara default, saat Anda menyimpan perubahan pada aplikasi, Cloud Code akan men-deploy ulang aplikasi dan menyiapkan sesi debug baru. Anda dapat mengaktifkan/menonaktifkan fitur ini dengan tanda watch di konfigurasi peluncuran project.

  6. Untuk menambahkan breakpoint, klik di margin editor file yang Anda debug.

    Lingkaran terisi merah menandakan breakpoint aktif dan lingkaran kosong abu-abu menandakan breakpoint dinonaktifkan.

    Untuk kontrol breakpoint yang lebih baik, Anda dapat menggunakan bagian Breakpoints di tampilan Debug VS Code.

    Bagian titik henti sementara di panel kiri Tampilan Debug yang memungkinkan penambahan, penghapusan, dan penonaktifan titik henti sementara

    Saat Anda mengirim permintaan baru ke layanan, layanan akan berhenti di baris yang Anda tentukan.

  7. Setelah sesi selesai, klik kanan untuk menggunakan perintah berikut:

    • View Logs: Membuka log aplikasi dari deployment tertentu dengan Logs Explorer Cloud Code
    • Open URL: Membuka URL layanan aplikasi dari layanan tertentu di browser web
  8. Jika Anda telah menonaktifkan mode smartwatch di konfigurasi peluncuran dan ingin membuat perubahan pada aplikasi serta membangun ulang dan men-deploy ulang aplikasi, klik status bar Cloud Code, lalu klik Turn on watch mode.

  9. Jika Anda ingin memeriksa variabel dan info stack, gunakan the Sidebar Debug. Untuk berinteraksi dengan sesi debug, gunakan Konsol Debug di debugger panel bawah.

  10. Untuk menghentikan deployment, klik tombol Stop di panel tindakan untuk deployment saat ini.

    Panel tindakan untuk deployment Cloud Run

Memecahkan masalah pembuatan container

Jika Anda mendapatkan kode error BUILD_DOCKER_UNKNOWN, hal ini menunjukkan masalah pada Docker. Untuk mengatasi masalah ini, lakukan satu atau beberapa tugas berikut:

  • Mulai ulang Docker dan coba bangun container lagi.

  • Jika Anda masih mendapatkan error yang sama setelah memulai ulang, Docker mungkin kehabisan ruang disk. Untuk mempelajari lebih lanjut cara membersihkan objek yang tidak digunakan di Docker, lihat Memangkas objek Docker yang tidak digunakan.

  • Coba ekstensi Penggunaan Disk Docker untuk membantu mengosongkan ruang.

Detail konfigurasi

Cloud Code menangani detail konfigurasi khusus bahasa berikut:

Node.js

Menulis ulang titik entri untuk memanggil:

node --inspect=localhost:9229

Python

Menginstal modul ptvsd menggunakan Container Init dan menulis ulang titik entri untuk memanggil:

python -m ptvsd --host localhost --port 5678

Go

Menginstal dlv debugger menggunakan Container Init dan menulis ulang titik entri sehingga sesi debug yang diluncurkan berjalan hanya dengan server debug (dalam mode tanpa tampilan), melanjutkan proses yang di-debug saat dimulai, menerima beberapa koneksi klien, dan memproses di localhost:56268:

dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --

Java

Menambahkan JAVA_TOOLS_OPTIONS lingkungan dengan konfigurasi Java Debug Wire Protocol (JDWP) yang sesuai sehingga agen debug JDWP memproses koneksi soket di port 5005 dan memungkinkan VM mulai dieksekusi sebelum debugger dilampirkan:

jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y

.NET

Aplikasi .NET Core dikonfigurasi untuk di-deploy bersama dengan vsdbg untuk VS Code.

Jika Anda mengalami masalah dengan konfigurasi otomatis, lihat Konfigurasi dan penyiapan debugger mendetail untuk mendapatkan bantuan pemecahan masalah.

Dapatkan Dukungan

Untuk mengirim masukan, laporkan masalah di GitHub, atau ajukan pertanyaan di Stack Overflow.