Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Lambda debugging jarak jauh
Ini AWS Toolkit for Visual Studio Code memungkinkan Anda untuk men-debug AWS Lambda fungsi Anda yang berjalan di cloud, langsung di VS Code. Dengan debugging AWS Lambda jarak jauh, Anda dapat memeriksa fungsi yang sedang berjalan, menetapkan breakpoint, memeriksa variabel, dan debugging langkah demi langkah tanpa memodifikasi alur kerja pengembangan yang ada.
Bagian berikut menjelaskan cara bekerja dengan debugging jarak jauh Lambda di AWS Toolkit for Visual Studio Code.
Cara kerja debugging jarak jauh Lambda
AWS Toolkit memungkinkan debugging jarak jauh dengan memodifikasi sementara fungsi Lambda Anda dengan lapisan debugging Lambda tambahan dan memperluas batas batas waktu pemanggilan Lambda hingga 900 detik. Koneksi aman dibuat antara debugger lokal Anda dan lingkungan runtime Lambda menggunakan AWS IoT Tunneling Aman. Koneksi ini memungkinkan Anda untuk menggunakan breakpoint kode lokal Anda untuk menelusuri fungsi saat dieksekusi dari jarak jauh. Setelah sesi debugging selesai, semua modifikasi sementara secara otomatis dikembalikan ke pengaturan aslinya.
Memulai
Waktu aktif yang didukung
Runtime berikut didukung oleh debugging jarak jauh Lambda.
-
Python (Amazon Linux 2023)
-
Java
-
Typescript/JavaScript/Node.js (Amazon Linux 2023)
catatan
Instans terkelola Lambda dan jenis fungsi gambar OCI tidak didukung oleh debugging jarak jauh Lambda.
Prasyarat
Sebelum Anda mulai, prasyarat berikut harus dipenuhi.
-
Anda harus memiliki AWS kredenSIAL yang valid yang dikonfigurasi di AWS Toolkit. Untuk detail tambahan tentang menginstal AWS Toolkit dan mengonfigurasi kredenSIAL Anda, lihat topik Mem ulai dalam panduan pengguna ini.
-
Fungsi Lambda telah diterapkan ke AWS akun Anda. Untuk detail tentang penerapan fungsi Lambda, lihat topik Buat fungsi Lambda pertama Anda di Panduan Peng AWS Lambda embang.
-
Anda harus memiliki kebijakan dan izin AWS Identity and Access Management (IAM) yang sesuai untuk men-debug fungsi Anda. Untuk detail tambahan tentang izin Lambda, lihat kebijakan ter AWS kelola untuk AWS Lambda topik di Panduan Peng AWS Lambda embang. Berikut ini adalah contoh kebijakan yang berisi izin minimum yang diperlukan untuk bekerja dengan debugging jarak jauh Lambda di AWS Toolkit.
catatan
Remote debugging diaktifkan melalui Tunn AWS AWS IoT eling Aman. Hal ini memungkinkan debugger lokal Anda untuk membuat koneksi aman ke lingkungan runtime Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListFunctions", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:InvokeFunction", "lambda:PublishVersion", "lambda:DeleteFunction", "iot:OpenTunnel", "iot:RotateTunnelAccessToken", "iot:ListTunnels" ], "Resource": "*" } ] }
Mengakses debugging jarak jauh Lambda
Ada dua jalur utama untuk mengakses debugging jarak jauh Lambda di AWS Toolkit: AWS explorer atau Application Builder explorer. Dari pen AWS jelajah, Anda dapat mengakses debugging jarak jauh Lambda melalui AWS Lambda node Anda. Dari Application Builder explorer, Anda dapat mengakses debugging jarak jauh Lambda melalui AWS SAM proyek lokal Anda.
Mengakses debugging jarak jauh Lambda dari AWS penjelajah
-
Dari VS Code, buka ekstensi AWS Toolkit.
-
Dari AWS Toolkit, perluas pen AWS jelajah.
-
Dari penjelajah, perluas simpul Lambda.
-
Arahkan ke fungsi yang ingin Anda debug, lalu pilih ikon Invoke remote dari menu konteks untuk membuka layar konfigurasi pemanggilan jarak jauh.
Mengakses debugging jarak jauh Lambda dari explorer Pembuat Aplikasi.
-
Dari VS Code, buka ekstensi AWS Toolkit.
-
Dari AWS Toolkit, perluas penjelajah pembuat aplikasi.
-
Dari penjelajah memperluas
AWS SAMproyek yang berisi proyek Lambda yang ingin Anda debug. -
Perluas
Lambdafungsi yang digunakan yang ingin Anda debug. -
Arahkan ke remote fungsi, lalu pilih ikon In voke remote dari menu konteks untuk membuka layar konfigurasi pemang gilan jarak jauh.
Bekerja dengan debugging jarak jauh Lambda
Bagian berikut menjelaskan cara bekerja dengan debugging jarak jauh Lambda di AWS Toolkit for Visual Studio Code.
catatan
Fungsi lambda memiliki batas 5-layer dan batas gabungan 250MB untuk kode fungsi dan semua lapisan terlampir. Lambda remote debugging membutuhkan setidaknya 1 lapisan bebas untuk dijalankan.
Menyiapkan sesi debugging
Sebelum Anda mulai, konfigurasikan sesi debugging Anda dengan menyelesaikan prosedur berikut.
-
Buka menu konfigurasi pemanggilan jarak jauh dengan menyelesaikan prosedur Mengakses debugging jarak jauh Lambda dari pen AWS jelajah atau Mengakses debugging jarak jauh Lambda dari prosedur explorer Pembuat Aplikasi, yang terletak di bagian sebelumnya.
-
Dari menu konfigurasi pemanggilan jarak jauh, pilih kotak cent ang Remote Debugging untuk menampilkan properti debugging jarak jauh.
-
Tentukan Local Root Path ke file handler lokal Anda.
catatan
Jalur root lokal adalah lokasi kode sumber Anda yang cocok dengan fungsi Lambda yang digunakan. Jika Anda bekerja dari fungsi yang digunakan di explorer Pembuat Aplikasi, jalur root lokal Anda secara otomatis terdeteksi.
Jika Anda tidak menyimpan kode sumber secara lokal, pilih tombol Unduh kode jarak jauh untuk mengambil kode sumber fungsi Lambda Anda. Ini akan membuka Anda
handler filedi editor Kode VS. -
Dari bagian Payload, tentukan di mana data test-event Anda diperoleh.
Mengatur breakpoint dan debugging
Tetapkan breakpoint dan mulai debugging dengan menyelesaikan prosedur berikut.
-
Dari editor VS Code Anda
handler file, klik di selokan untuk mengatur breakpoint pada nomor baris tempat Anda ingin menjeda debugging. -
Ketika Anda puas dengan breakpoint, kembali ke menu konfigurasi pemang gilan jarak jauh untuk memverifikasi bahwa pengaturan Anda dikonfigurasi dengan benar, lalu pilih tombol pemanggilan jarak jauh untuk memulai debugging.
-
AWS Toolkit memperbarui fungsi Lambda Anda dengan kemampuan debugging, membuat terowongan aman untuk sesi debugging, memanggil fungsi Anda dengan payload yang ditentukan, lalu menjeda proses ketika mencapai breakpoint.
-
Pada jeda breakpoint, gunakan panel R UN AND DEBUG untuk melihat VARIABLES, CALL STACK , dan BREAKPOINTS.
Memperbarui dan menguji fungsi Anda
Untuk memodifikasi kode Anda dan menguji perubahan dengan penerapan cepat, selesaikan prosedur berikut.
-
Dengan sesi debugging Anda aktif, buat perubahan
handler filepada editor Kode VS. -
Simpan perubahan Anda (
Command+S on macOS,Ctrl+S on Windows) -
Saat diminta, konfirmasikan bahwa Anda ingin melanjutkan untuk menerapkan perubahan Anda. AWS Toolkit akan memperbarui fungsi Lambda Anda dengan kode yang dimodifikasi.
-
Lanjutkan debugging dan pengujian perubahan Anda dengan menyetel breakpoint baru dan memilih tombol pemang gilan jarak jauh lagi.
catatan
Atau, Anda dapat membatalkan pilihan Lampirkan debugger di kontrol debugging Kode VS dan memilih tombol Remote invoke untuk menjalankan fungsi Anda tanpa debugging.
Mengakhiri sesi debugging
Masing-masing opsi berikut mengakhiri sesi debugging jarak jauh Anda dan menghapus lapisan debug dari proyek Anda.
-
Memilih opsi Remove Debug Setup dari layar konfigurasi Remote invoke.
-
Memilih ikon pemutusan dari kontrol debugging Kode VS.
-
Menutup
handler filedi editor Kode VS.
catatan
Perhatikan hal-hal berikut ini:
-
Lapisan debug Lambda dihapus secara otomatis setelah 60 detik tidak aktif. Penghitungan dimulai ketika panggilan terakhir Anda selesai.
-
Jika Anda membuat perubahan kode pada fungsi yang dikelola infrastructure-as-code (IaC) (AWS SAM,, Terraform) selama proses debugging AWS CDK, simpan ke proyek lokal Anda dan pertimbangkan untuk memperbarui repositori kontrol sumber Anda. Perubahan yang belum disimpan akan diganti saat fungsi IaC Anda di-redeploy.
-
Jika Anda membuat perubahan sementara hanya untuk tujuan debugging, Anda mungkin ingin menyebarkan ulang fungsi Anda dari kontrol sumber untuk memastikannya cocok dengan kode produksi Anda.
Men-debug fungsi TypeScript Lambda dengan peta sumber
Bagian berikut menjelaskan cara men-debug fungsi TypeScript Lambda Anda dengan peta sumber.
Prasyarat
Untuk men-debug fungsi TypeScript Lambda Anda, prasyarat berikut harus dipenuhi.
-
Anda TypeScript harus dikompilasi dengan opsi peta sumber diaktifkan. Untuk informasi tambahan, lihat topik dukungan peta
JavaScript sumber dalam dokumentasi VS Code. -
In-line peta sumber tidak didukung. Anda harus menggunakan
.js.mapfile terpisah untuk menyimpan peta sumber.
Konfigurasi
Untuk mengkonfigurasi debugging jarak jauh Lambda untuk fungsi TypeScript Lambda di AWS Toolkit, selesaikan langkah-langkah berikut.
-
Dari AWS Toolkit, perluas pen AWS jelajah.
-
Dari penjelajah, perluas simpul Lambda.
-
Arahkan ke fungsi yang ingin Anda konfigurasikan TypeScript, lalu pilih ikon In voke remote dari menu konteks untuk membuka layar konfigurasi pemang gilan jarak jauh.
-
Aktifkan debugging jarak jauh dengan memilih kotak centang Remote debugging.
-
Konfigurasikan Local Root Path Anda dengan menunjuk ke direktori yang berisi
TypeScript handler file.catatan
Di
TypeScript handler filesinilah Anda mengatur breakpoint debugging Anda. -
Perluas pengaturan konfigurasi tambahan debug jarak jauh.
-
Aktifkan pemetaan sumber dengan memilih kotak centang Peta sumber.
-
Atur bidang File keluar ke direktori lokal salinan fungsi Lambda Anda.
contoh
Jika
app.jsdanapp.mapsedang masuk.aws-sam/build/HelloWorldFunction, maka buat lokasi file Keluar/Users/.user/project/aws-sam/build/HelloWorldFunction/*catatan
Jal ur file Keluar harus menjadi jalur absolut.
Untuk AWS SAM dan AWS CDK proyek, AWS Toolkit mendukung deteksi peta sumber otomatis. Jika bidang File keluar dibiarkan kosong untuk proyek ini, toolkit akan secara otomatis mencoba mendeteksi lokasi peta sumber.
-
Ketika Anda puas dengan pengaturan, pilih tombol pemanggilan jarak jauh untuk mulai men-debug TypeScript fungsi Anda.
Pemecahan masalah dan kasus penggunaan lanjutan
Jika sesi debug Anda gagal, mulailah proses pemecahan masalah dengan menyelesaikan langkah-langkah ini.
-
Perbarui AWS Toolkit ke versi terbaru.
-
Segarkan tampilan web dengan menutup tampilan web konfigurasi panggilan jarak jauh dan membukanya kembali.
-
Mulai ulang VS Code dengan menutupnya sepenuhnya dan membukanya kembali.
-
Buka Palet Perintah Kode VS dan masukkan perintah
AWS: Reset Lambda Remote Debugging Snapshot, pilih saat diisi dalam hasil untuk mengatur ulang snapshot debugging jarak jauh Lambda Anda. -
Jika Anda tidak dapat memecahkan masalah, kirimkan masalah ke AWS Toolkit for Visual Studio Code GitHub Masalah
.
Kasus penggunaan lanjutan: konfigurasi penandatanganan kode
Remote debugging memerlukan melampirkan lapisan debug ke fungsi Lambda Anda. Jika fungsi Anda memiliki konfigurasi penandatanganan kode yang diaktifkan dan diberlakukan, AWS Toolkit tidak dapat secara otomatis melampirkan lapisan debug ke fungsi Anda.
Ada dua opsi untuk menyelesaikan masalah konfigurasi penandatanganan kode.
-
Hapus penandatanganan kode sementara.
-
Gunakan layer debug yang ditandatangani.
Menghapus penandatanganan kode untuk sementara
Perbarui konfigurasi penandatanganan kode dengan UntrustedArtifactOnDeployment :
Warn menyetel, lalu aktifkan kembali Enforced setelah proses debugging selesai.
Untuk informasi selengkapnya, lihat UpdateCodeSigningConfig referensi di Refer AWS Lambda ensi API.
Menggunakan lapisan debug yang ditandatangani
-
Dari debugging jarak jauh Lambda di AWS Toolkit, perluas bagian konfigurasi tambahan debug jarak jauh.
-
Dari bagian konfigurasi tambahan debug jarak jauh, salin ARN layer Region Anda dari bidang Override Layer.
-
Dari AWS CLI, gunakan perintah berikut untuk mengunduh versi layer
aws lambda get-layer-version-by-arn --arn, mengganti layer-arn dengan layer ARN Anda. Untuk petunjuk terperinci tentang cara mengunduh layer debug yang ditandatangani, lihat referensi get-layer-version-by-arn di Referensi Perintah. AWS CLIlayer-arn -
Tanda tangani layer dengan konfigurasi penandatanganan kode dan publikasikan ke akun Anda. Untuk panduan penandatanganan dan penerbitan, lihat topik Menyiapkan penandatanganan kode untuk AWS SAM aplikasi Anda di Panduan AWS Serverless Application Model Pengembang.
-
Setelah layer ditandatangani dan dipublikasikan ke akun Anda, kembali ke bagian konfigurasi tambahan debug jarak jauh dari debugging jarak jauh Lambda, lalu masukkan layer baru ARN ke bidang Over ride Lay er. Ketika proses selesai, debugging jarak jauh Lambda menggunakan layer yang ditandatangani alih-alih layer default.
Kasus penggunaan lanjutan: fungsi debugging dengan SnapStart atau konkurensi yang disediakan
Untuk fungsi Lambda yang dikonfigurasi dengan SnapStart atau disediakan konkurensi, menerbitkan versi baru membutuhkan waktu yang jauh lebih lama. Untuk mempercepat alur kerja debugging, Anda dapat mengonfigurasi debugging jarak jauh Lambda untuk memperbarui hanya $LATEST versi fungsi Anda alih-alih menerbitkan versi baru.
-
Dari layar konfigurasi pemanggilan jarak jauh, perluas pengaturan konfigurasi tambahan debug jarak jauh.
-
Batalkan pilihan Publi kasikan versi.
-
AWS Toolkit sekarang hanya akan memperbarui
$LATESTversi fungsi Anda dan men-debug menggunakannya.
catatan
Sebagai efek samping dari debugging dengan $LATEST versi, Anda harus menghindari lalu lintas lain yang dapat memanggil $LATEST versi Anda untuk memastikan lingkungan debugging yang tidak terganggu.
Wilayah yang didukung
Kesalahan berikut terjadi ketika suatu wilayah tidak mendukung debugging jarak jauh.
Region ${region} doesn't support remote debugging yet
Berikut ini adalah daftar wilayah yang didukung.
-
ap-east-1
-
ap-northeast-1
-
ap-northeast-2
-
ap-south-1
-
ap-southeast-1
-
ap-southeast-2
-
ca-sentral-1
-
eu-central-1
-
eu-north-1
-
eu-west-1
-
eu-west-2
-
eu-west-3
-
me-central-1
-
me-south-1
-
sa-east-1
-
us-east-1
-
us-east-2
-
us-west-1
-
us-west-2
Lambda RequestEntityTooLargeException
Fungsi lambda memiliki batas 5-layer dan batas gabungan 250MB untuk kode fungsi dan semua lapisan terlampir. Lapisan debugging jarak jauh kira-kira 40MB, yang dapat menyebabkan fungsi Anda melebihi batas ini jika Anda memiliki paket fungsi besar atau beberapa lapisan. Untuk detail tambahan, lihat bagian Lambda: InvalidParameterValueException atau RequestEntityTooLargeException topik di Panduan Peng AWS Lambda embang.
Daftar berikut menjelaskan cara untuk memecahkan masalah dan memperbaiki kesalahan ini.
-
Kurangi ukuran fungsi: Optimalkan kode fungsi Anda dan hapus dependensi yang tidak perlu.
-
Hapus lapisan yang tidak digunakan: Hapus sementara lapisan non-esensial selama debugging.
-
Gunakan dependensi eksternal: Pindahkan dependensi besar ke penyimpanan eksternal, seperti Amazon S3, dan muat saat runtime.
Memecahkan masalah debugging Java
Untuk men-debug fungsi Java Lambda, Anda harus menginstal versi Java yang sama secara lokal yang cocok dengan versi runtime fungsi Lambda Anda.
Misalnya, saat men-debug fungsi Java 25, Anda harus menginstal Java 25 di lingkungan lokal Anda tempat AWS Toolkit berjalan. Jika Anda mencoba men-debug fungsi Java 25 dengan Java 21 atau versi sebelumnya yang diinstal secara lokal, debugging jarak jauh tidak akan dapat berhenti pada breakpoint yang Anda tetapkan.
Pastikan versi Java lokal Anda cocok dengan versi runtime fungsi Lambda Anda sebelum memulai sesi debugging.
Kuota tunneling aman IoT terlampaui
Berikut ini adalah contoh kesalahan terlampaui kuota terowongan yang terjadi ketika Anda telah mencapai batas harian untuk koneksi tunneling AWS IoT aman di debugging jarak jauh Lambda.
Error creating/reusing tunnel: LimitExceededException: Exceeded quota of Lambda debugging tunnels
AWS IoT Koneksi Tunneling Aman memiliki kuota berikut:
-
Free-tier Tunneling aman IoT dialokasikan 10 koneksi per hari.
-
Setiap terowongan mendukung satu instance VS Code hingga 12 jam.
-
Kuota berlaku per AWS akun, per hari.
Jika Anda mengalami kesalahan tunneling AWS IoT aman, tunggu reset kuota harian atau hubungi AWS
dukungan untuk meminta kenaikan batas kuota. Untuk info kontak AWS dukungan, lihat portal kontak AWS dukungan