AWS Lambda debugging jarak jauh - AWS Toolkit for VS Code

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

AWS Toolkit for Visual Studio Code Ini 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, mengatur breakpoint, memeriksa variabel, dan debugging step-through tanpa memodifikasi alur kerja pengembangan yang ada.

Bagian berikut menjelaskan cara bekerja dengan debugging jarak jauh Lambda di file. 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 memperpanjang batas waktu pemanggilan Lambda hingga 900 detik. Koneksi aman dibuat antara debugger lokal Anda dan lingkungan runtime Lambda menggunakan Tunneling Aman. AWS IoT Koneksi ini memungkinkan Anda untuk menggunakan breakpoint kode lokal Anda untuk melangkah melalui fungsi saat dijalankan dari jarak jauh. Setelah sesi debugging Anda 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

  • JavaScript/Node.js (Amazon Linux 2023)

Prasyarat

Sebelum Anda mulai, prasyarat berikut harus dipenuhi.

  • Anda harus memiliki AWS kredenal yang valid yang dikonfigurasi di Toolkit. AWS Untuk detail tambahan tentang menginstal AWS Toolkit dan mengonfigurasi kredensional Anda, lihat topik Memulai di panduan pengguna ini.

  • Fungsi Lambda telah diterapkan ke akun Anda. AWS Untuk detail tentang penerapan fungsi Lambda, lihat topik Membuat fungsi Lambda pertama Anda di Panduan Pengembang. AWS Lambda

  • 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 AWS terkelola untuk AWS Lambda topik di Panduan Pengembang. AWS Lambda Berikut ini adalah contoh kebijakan yang berisi izin minimum yang diperlukan untuk bekerja dengan debugging jarak jauh Lambda di Toolkit. AWS

    catatan

    Debugging jarak jauh diaktifkan melalui Tunneling AWS AWS IoT Aman. 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:CloseTunnel", "iot:OpenTunnel", "iot:RotateTunnelAccessToken", "iot:ListTunnels" ], "Resource": "*" } ] }

Mengakses debugging jarak jauh Lambda

Ada dua jalur utama untuk mengakses Lambda remote debugging di AWS Toolkit: AWS explorer atau Application Builder explorer. Dari AWS penjelajah, Anda dapat mengakses debugging jarak jauh Lambda melalui node Anda. AWS Lambda Dari penjelajah Application Builder, Anda dapat mengakses debugging jarak jauh Lambda melalui proyek lokal Anda. AWS SAM

Mengakses debugging jarak jauh Lambda dari penjelajah AWS
  1. Dari VS Code, buka ekstensi AWS Toolkit.

  2. Dari AWS Toolkit, perluas AWS penjelajah.

  3. Dari penjelajah, perluas simpul Lambda.

  4. Arahkan ke fungsi yang ingin Anda debug, lalu pilih ikon Panggil jarak jauh dari menu konteks untuk membuka layar konfigurasi pemanggilan jarak jauh.

Mengakses debugging jarak jauh Lambda dari penjelajah Application Builder.
  1. Dari VS Code, buka ekstensi AWS Toolkit.

  2. Dari AWS Toolkit, perluas explorer pembuat aplikasi.

  3. Dari penjelajah, perluas AWS SAM proyek yang berisi proyek Lambda yang ingin Anda debug.

  4. Perluas Lambda fungsi yang digunakan yang ingin Anda debug.

  5. Arahkan ke fungsi remote, lalu pilih ikon Invoke remote dari menu konteks untuk membuka layar konfigurasi pemanggilan jarak jauh.

Bekerja dengan debugging jarak jauh Lambda

Bagian berikut menjelaskan cara bekerja dengan debugging jarak jauh Lambda di file. AWS Toolkit for Visual Studio Code

catatan

Fungsi Lambda memiliki batas 5 lapisan dan batas gabungan 250MB untuk kode fungsi dan semua lapisan terlampir. Debugging jarak jauh Lambda membutuhkan setidaknya 1 lapisan gratis untuk dijalankan.

Menyiapkan sesi debugging

Sebelum memulai, konfigurasikan sesi debugging Anda dengan menyelesaikan prosedur berikut.

  1. Buka menu konfigurasi panggilan Jarak Jauh dengan menyelesaikan debug jarak jauh Accessing Lambda dari explorer AWS atau debug jarak jauh Accessing Lambda dari prosedur explorer Application Builder, yang terletak di bagian sebelumnya.

  2. Dari menu konfigurasi panggilan jarak jauh, pilih kotak centang Remote Debugging untuk menampilkan properti debugging jarak jauh.

  3. Tentukan Local Root Path ke file handler lokal Anda.

    catatan

    Jalur root lokal adalah lokasi kode sumber Anda yang cocok dengan fungsi Lambda yang diterapkan. Jika Anda bekerja dari fungsi yang di-deploy di Application Builder explorer, jalur root lokal Anda akan terdeteksi secara otomatis.

    Jika Anda tidak memiliki kode sumber yang disimpan secara lokal, pilih tombol Unduh kode jarak jauh untuk mengambil kode sumber fungsi Lambda Anda. Ini akan membuka Anda handler file di editor VS Code.

  4. Dari bagian Payload, tentukan di mana data ujian-acara Anda diperoleh.

Mengatur breakpoint dan debugging

Atur breakpoint dan mulai debugging dengan menyelesaikan prosedur berikut.

  1. Dari editor VS Code Andahandler file, klik margin selokan untuk mengatur breakpoint pada nomor baris tempat Anda ingin menjeda debugging.

  2. Ketika Anda puas dengan breakpoint, kembali ke menu konfigurasi pemanggilan jarak jauh untuk memverifikasi bahwa pengaturan Anda dikonfigurasi dengan benar, lalu pilih tombol Remote invoke untuk memulai debugging.

  3. AWS Toolkit memperbarui fungsi Lambda Anda dengan kemampuan debugging, membuat terowongan aman untuk sesi debugging, memanggil fungsi Anda dengan muatan yang ditentukan, lalu menjeda proses saat mencapai breakpoint.

  4. Pada jeda breakpoint, gunakan panel RUN AND DEBUG untuk melihat VARIABLES, CALL STACK, dan BREAKPOINTS Anda.

Memperbarui dan menguji fungsi Anda

Untuk memodifikasi kode Anda dan menguji perubahan dengan penerapan cepat, selesaikan prosedur berikut.

  1. Dengan sesi debugging Anda aktif, buat perubahan handler file pada editor VS Code Anda.

  2. Simpan perubahan Anda (Command+S on macOS,Ctrl+S on Windows)

  3. Saat diminta, konfirmasikan bahwa Anda ingin melanjutkan untuk menerapkan perubahan Anda. AWS Toolkit akan memperbarui fungsi Lambda Anda dengan kode yang dimodifikasi.

  4. Lanjutkan debugging dan uji perubahan Anda dengan mengatur breakpoint baru dan memilih tombol Remote invoke lagi.

    catatan

    Atau, Anda dapat membatalkan pilihan opsi Attach debugger di kontrol debugging VS Code 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 Hapus Pengaturan Debug dari layar konfigurasi pemanggilan jarak jauh.

  • Memilih ikon putuskan sambungan dari kontrol debugging VS Code.

  • Menutup handler file di editor Kode VS.

catatan

Perhatikan hal-hal berikut ini:

  • Lapisan debug Lambda secara otomatis dihapus setelah 60 detik tidak aktif. Hitungan dimulai saat pemanggilan terakhir Anda selesai.

  • Jika Anda membuat perubahan kode pada fungsi infrastructure-as-code (IAc) yang dikelola (AWS SAM, AWS CDK, Terraform) selama proses debugging, simpan ke proyek lokal Anda dan pertimbangkan untuk memperbarui repositori kontrol sumber Anda. Perubahan yang belum disimpan akan ditimpa saat fungsi IAc Anda di-deploy ulang.

  • Jika Anda membuat perubahan sementara hanya untuk tujuan debugging, Anda mungkin ingin menerapkan ulang fungsi Anda dari kontrol sumber untuk memastikannya cocok dengan kode produksi Anda.

Pemecahan masalah dan kasus penggunaan lanjutan

Jika sesi debug Anda gagal, mulailah proses pemecahan masalah dengan menyelesaikan langkah-langkah ini.

  1. Perbarui AWS Toolkit ke versi terbaru.

  2. Segarkan tampilan web dengan menutup tampilan web konfigurasi panggilan Remote dan membukanya kembali.

  3. Mulai ulang VS Code dengan menutupnya sepenuhnya dan membukanya kembali.

  4. Buka Palet Perintah Kode VS dan masukkan perintahAWS: Reset Lambda Remote Debugging Snapshot, pilih saat diisi dalam hasil untuk mengatur ulang snapshot debugging jarak jauh Lambda Anda.

  5. Jika Anda tidak dapat memecahkan masalah, kirimkan masalah ke AWS Toolkit for Visual Studio Code GitHub Masalah.

Kasus penggunaan lanjutan: konfigurasi penandatanganan kode

Debugging jarak jauh membutuhkan melampirkan lapisan debug ke fungsi Lambda Anda. Jika fungsi Anda memiliki konfigurasi penandatanganan kode diaktifkan dan diberlakukan, AWS Toolkit tidak dapat secara otomatis melampirkan lapisan debug ke fungsi Anda.

Ada dua opsi untuk mengatasi masalah konfigurasi penandatanganan kode.

  • Hapus penandatanganan kode untuk sementara.

  • Gunakan layer debug yang ditandatangani.

Menghapus penandatanganan kode untuk sementara

Perbarui konfigurasi penandatanganan kode dengan menyetelUntrustedArtifactOnDeployment : Warn, lalu aktifkan kembali Enforced setelah proses debugging selesai.

Untuk informasi selengkapnya, lihat UpdateCodeSigningConfigreferensi di Referensi AWS Lambda API.

Menggunakan lapisan debug yang ditandatangani

  1. Dari debugging jarak jauh Lambda di AWS Toolkit, perluas bagian konfigurasi tambahan debug jarak jauh.

  2. Dari bagian konfigurasi tambahan debug jarak jauh, salin ARN layer Region Anda dari bidang penggantian Layer.

  3. Dari AWS CLI, gunakan perintah berikut untuk men-download versi layeraws lambda get-layer-version-by-arn --arn layer-arn, menggantikan layer-arn dengan layer ARN Anda. Untuk petunjuk rinci tentang cara mengunduh layer debug yang ditandatangani, lihat referensi get-layer-version-by-arn di Command Reference.AWS CLI

  4. Tanda tangani layer dengan konfigurasi penandatanganan kode Anda dan publikasikan ke akun Anda. Untuk panduan penandatanganan dan penerbitan, lihat Menyiapkan penandatanganan kode untuk topik AWS SAM aplikasi Anda di Panduan AWS Serverless Application Model Pengembang.

  5. Setelah layer ditandatangani dan dipublikasikan ke akun Anda, kembali ke bagian konfigurasi tambahan debug jarak jauh Lambda dari debugging jarak jauh Lambda, lalu masukkan ARN layer baru ke bidang penggantian Layer. Ketika proses selesai, debugging jarak jauh Lambda menggunakan lapisan yang ditandatangani Anda alih-alih lapisan default.

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 lapisan dan batas gabungan 250MB untuk kode fungsi dan semua lapisan terlampir. Lapisan debugging jarak jauh sekitar 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 AWS Lambda Pengembang.

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 yang tidak penting selama debugging.

  • Gunakan dependensi eksternal: Pindahkan dependensi besar ke penyimpanan eksternal, seperti Amazon S3, dan muat saat runtime.

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 yang aman memiliki kuota berikut:

  • Tunneling aman IoT tingkat bebas 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 pengaturan ulang kuota harian atau hubungi AWS dukungan untuk meminta peningkatan batas kuota. Untuk info kontak AWS dukungan, lihat portal kontak AWS dukungan. Untuk informasi rinci tentang tunneling AWS IoT aman, lihat topik tunneling AWS IoT aman di Panduan Pengembang.AWS IoT

Mendebug 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 mematuhi opsi peta sumber yang diaktifkan. Untuk informasi tambahan, lihat topik dukungan peta JavaScript sumber dalam dokumentasi VS Code.

  • Untuk bekerja dengan peta sumber in-line, semua perubahan harus dipindahkan ke cloud.

Konfigurasi

Untuk mengonfigurasi debugging jarak jauh Lambda untuk fungsi TypeScript Lambda di AWS Toolkit, selesaikan langkah-langkah berikut.

  1. Dari AWS Toolkit, perluas AWS penjelajah.

  2. Dari penjelajah, perluas simpul Lambda.

  3. Arahkan ke fungsi yang ingin Anda konfigurasikan TypeScript, lalu pilih ikon Panggil jarak jauh dari menu konteks untuk membuka layar konfigurasi pemanggilan jarak jauh.

  4. Aktifkan debugging jarak jauh dengan memilih kotak centang Remote debugging.

  5. Konfigurasikan Jalur Root Lokal Anda dengan menunjuk ke direktori yang berisi AndaTypeScript handler file.

    catatan

    Di TypeScript handler file sinilah Anda mengatur breakpoint debugging Anda.

  6. Perluas pengaturan konfigurasi tambahan debug jarak jauh.

  7. Aktifkan pemetaan sumber dengan memilih kotak centang Peta Sumber.

  8. Atur bidang Keluar file ke direktori lokal salinan fungsi Lambda Anda.

    Jika app.js dan app.map berada di.aws-sam/build/HelloWorldFunction, maka buatlah lokasi file Keluar/Users/user/project/aws-sam/build/HelloWorldFunction/*.

    catatan

    Jalur file Out harus menjadi jalur absolut.

  9. Ketika Anda puas dengan pengaturan, pilih tombol Remote invoke untuk mulai men-debug fungsi Anda TypeScript .