

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
<a name="lambda-remote-debug"></a>

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
<a name="w2aac17c43c19b7"></a>

 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
<a name="w2aac17c43c19b9"></a>

### Waktu aktif yang didukung
<a name="w2aac17c43c19b9b3"></a>

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
<a name="w2aac17c43c19b9b5"></a>

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 ](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setting-up.html) ulai dalam panduan pengguna ini. 
+ Fungsi Lambda telah diterapkan ke AWS akun Anda. Untuk detail tentang penerapan fungsi Lambda, lihat [ topik ](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) 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](https://docs.aws.amazon.com/lambda/latest/dg/security-iam-awsmanpol.html) 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
<a name="w2aac17c43c19c11"></a>

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**

1. Dari VS Code, buka ekstensi AWS Toolkit.

1. Dari AWS Toolkit, perluas pen AWS jelajah.

1. Dari penjelajah, perluas ** simpul ** Lambda.

1. 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.**

1. Dari VS Code, buka ekstensi AWS Toolkit.

1. Dari AWS Toolkit, perluas penjelajah pembuat aplikasi.

1. Dari penjelajah memperluas `AWS SAM` proyek yang berisi proyek Lambda yang ingin Anda debug.

1. Perluas `Lambda` fungsi yang digunakan yang ingin Anda debug.

1. 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
<a name="w2aac17c43c19c13"></a>

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
<a name="w2aac17c43c19c13b7"></a>

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

1. 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.

1. Dari ** menu konfigurasi ** pemanggilan jarak jauh, pilih kotak ** cent ** ang Remote Debugging untuk menampilkan properti debugging jarak jauh.

1. 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 file` di editor Kode VS.

1. Dari ** bagian ** Payload, tentukan di mana data test-event Anda diperoleh.

### Mengatur breakpoint dan debugging
<a name="w2aac17c43c19c13b9"></a>

Tetapkan breakpoint dan mulai debugging dengan menyelesaikan prosedur berikut.

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

1. 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.

1.  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.

1. Pada jeda breakpoint, gunakan ** panel R ** UN AND DEBUG untuk melihat ** VARIABLES, ** CALL STACK ****, dan ** BREAKPOINTS. **

### Memperbarui dan menguji fungsi Anda
<a name="w2aac17c43c19c13c11"></a>

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 Kode VS.

1. Simpan perubahan Anda (**Command\+S on macOS**,**Ctrl\+S on Windows**)

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

1. 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
<a name="w2aac17c43c19c13c13"></a>

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 file` di 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
<a name="typescript-source-maps"></a>

Bagian berikut menjelaskan cara men-debug fungsi TypeScript Lambda Anda dengan peta sumber.

#### Prasyarat
<a name="w2aac17c43c19c13c15b5"></a>

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 ](https://code.visualstudio.com/docs/typescript/typescript-debugging#_javascript-source-map-support) JavaScript sumber dalam dokumentasi VS Code.
+ In-line peta sumber tidak didukung. Anda harus menggunakan `.js.map` file terpisah untuk menyimpan peta sumber.

#### Konfigurasi
<a name="w2aac17c43c19c13c15b7"></a>

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

1. Dari AWS Toolkit, perluas pen AWS jelajah.

1. Dari penjelajah, perluas ** simpul ** Lambda.

1. 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.

1. Aktifkan debugging jarak jauh dengan memilih kotak ** centang ** Remote debugging.

1. Konfigurasikan ** Local Root Path Anda ** dengan menunjuk ke direktori yang berisi`TypeScript handler file`.
**catatan**  
Di `TypeScript handler file` sinilah Anda mengatur breakpoint debugging Anda.

1. Perluas ** pengaturan konfigurasi tambahan debug ** jarak jauh.

1. Aktifkan pemetaan ** sumber dengan memilih kotak ** centang Peta sumber.

1. Atur ** bidang File ** keluar ke direktori lokal salinan fungsi Lambda Anda.  
**Example**  

   Jika `app.js` dan `app.map` sedang 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.

1. Ketika Anda puas dengan pengaturan, pilih ** tombol pemanggilan ** jarak jauh untuk mulai men-debug TypeScript fungsi Anda.

## Pemecahan masalah dan kasus penggunaan lanjutan
<a name="troubleshooting"></a>

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

1. Perbarui AWS Toolkit ke versi terbaru.

1. Segarkan tampilan web dengan menutup tampilan ** web konfigurasi panggilan ** jarak jauh dan membukanya kembali.

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

1. 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.

1. Jika Anda tidak dapat memecahkan masalah, kirimkan masalah ke [AWS Toolkit for Visual Studio Code GitHub Masalah](https://github.com/aws/aws-toolkit-vscode/issues).

### Kasus penggunaan lanjutan: konfigurasi penandatanganan kode
<a name="troubleshooting-code-signing-configuration"></a>

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
<a name="troubleshooting-code-signing-configuration-temp-remove"></a>

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

Untuk informasi selengkapnya, lihat [ UpdateCodeSigningConfig ](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateCodeSigningConfig.html) referensi di Refer *AWS Lambda ensi API*.

#### Menggunakan lapisan debug yang ditandatangani
<a name="troubleshooting-code-signing-configuration-signed-debug-layer"></a>

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

1. Dari ** bagian konfigurasi tambahan debug ** jarak jauh, salin ARN layer Region Anda dari bidang Override ** Layer**.

1. Dari AWS CLI, gunakan perintah berikut untuk mengunduh versi layer`aws lambda get-layer-version-by-arn --arn layer-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 ](https://docs.aws.amazon.com/cli/latest/reference/lambda/get-layer-version-by-arn.html) di Referensi Perintah. *AWS CLI *

1. 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*. ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html)

1. 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
<a name="troubleshooting-snapstart-provisioned-concurrency"></a>

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.

1. Dari ** layar konfigurasi ** pemanggilan jarak jauh, perluas pengaturan konfigurasi ** tambahan debug ** jarak jauh.

1. Batalkan ** pilihan Publi ** kasikan versi.

1.  AWS Toolkit sekarang hanya akan memperbarui `$LATEST` versi 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
<a name="troubleshooting-regions"></a>

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
<a name="troubleshooting-storage-limit"></a>

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 ](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-InvalidParameterValueException1) 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
<a name="troubleshooting-java-debugging"></a>

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
<a name="troubleshooting-tunnel-quota"></a>

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](https://aws.amazon.com/contact-us/). Untuk informasi terperinci tentang tunneling AWS IoT aman, lihat [ topik tunneling ](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html)AWS IoT aman di Panduan Peng *AWS IoT embang. *