

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Debug aplikasi tanpa server Anda dengan AWS SAM
<a name="debug-application"></a>

Setelah menguji aplikasi Anda, Anda akan siap untuk men-debug masalah apa pun yang Anda temukan. Dengan antarmuka baris AWS SAM perintah (CLI), Anda dapat menguji dan men-debug aplikasi tanpa server secara lokal sebelum mengunggahnya ke Cloud. AWS Debugging aplikasi Anda mengidentifikasi dan memperbaiki masalah atau kesalahan dalam aplikasi Anda.

Anda dapat menggunakan AWS SAM untuk melakukan debugging step-through, yang merupakan metode menjalankan kode satu baris atau instruksi pada satu waktu. Saat Anda memanggil fungsi Lambda secara lokal dalam mode debug di dalamnya AWS SAMCLI, Anda kemudian dapat melampirkan debugger ke dalamnya. Dengan debugger, Anda dapat melangkah melalui kode Anda baris demi baris, melihat nilai variabel yang berbeda, dan memperbaiki masalah dengan cara yang sama seperti yang Anda lakukan untuk aplikasi lain. Anda dapat memverifikasi apakah aplikasi Anda berperilaku sesuai yang diharapkan, men-debug kesalahan, dan memperbaiki masalah apa pun, sebelum melalui langkah-langkah pengemasan dan deployment aplikasi Anda.

**catatan**  
Jika aplikasi Anda memuat satu lapisan atau lebih, ketika Anda menjalankan dan men-debug aplikasi Anda secara lokal, paket lapisan akan diunduh dan di-cache pada host lokal Anda. Untuk informasi selengkapnya, lihat [Bagaimana lapisan di-cache secara lokal](serverless-sam-cli-layers.md#local-testing-with-layers).

**Topics**
+ [

# Fungsi debug lokal dengan AWS SAM
](serverless-sam-cli-using-debugging.md)
+ [

# Lewati beberapa argumen runtime saat men-debug dengan AWS SAM
](serverless-sam-cli-using-debugging-additional-arguments.md)
+ [

# Validasi AWS SAM aplikasi Anda dengan Linter CloudFormation
](validate-cfn-lint.md)

# Fungsi debug lokal dengan AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

Anda dapat menggunakan AWS SAM berbagai AWS toolkit dan debugger untuk menguji dan men-debug aplikasi tanpa server Anda secara lokal. Langkah-through debugging fungsi Lambda Anda memungkinkan Anda mengidentifikasi dan memperbaiki masalah dalam aplikasi Anda satu baris atau instruksi pada satu waktu di lingkungan lokal Anda.

Beberapa cara Anda dapat melakukan debugging step-through lokal termasuk pengaturan breakpoint, memeriksa variabel, dan mengeksekusi kode fungsi satu baris pada satu waktu. Debug bertahap lokal memperketat putaran umpan balik dengan memungkinkan Anda menemukan dan memecahkan masalah yang mungkin Anda alami di cloud.

Anda dapat menggunakan AWS Toolkit untuk men-debug, dan Anda juga dapat menjalankan AWS SAM dalam mode debug. Lihat topik di bagian ini untuk detailnya. 

## Menggunakan AWS Toolkit
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS Toolkit adalah plugin lingkungan pengembangan terintegrasi (IDE) yang memberi Anda kemampuan untuk melakukan banyak tugas debugging umum, seperti mengatur breakpoint, memeriksa variabel, dan mengeksekusi kode fungsi satu baris pada satu waktu. AWS Toolkit memudahkan Anda untuk mengembangkan, men-debug, dan menyebarkan aplikasi tanpa server yang dibuat menggunakan. AWS SAM Mereka memberikan pengalaman untuk membangun, menguji, men-debug, men-deploy, dan menjalankan fungsi Lambda yang terintegrasi ke dalam IDE Anda.

Untuk informasi selengkapnya tentang AWS Toolkit yang dapat Anda gunakan AWS SAM, lihat berikut ini:
+ [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)
+ [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)

Ada berbagai AWS Toolkit yang bekerja dengan kombinasi IDEs dan runtime yang berbeda. Tabel berikut mencantumkan IDE/runtime kombinasi umum yang mendukung proses debug aplikasi secara bertahap: AWS SAM 


| IDE | Waktu aktif | AWS Toolkit | Instruksi untuk debugging bertahap | 
| --- | --- | --- | --- | 
| Kode Studio Visual |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | [Bekerja dengan AWS Serverless Application](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) dalam Panduan Pengguna AWS Toolkit for Visual Studio Code   | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9, dengan AWS Toolkit diaktifkan 1 |  [Bekerja dengan aplikasi AWS tanpa server menggunakan AWS Toolkit di Panduan](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html) *Pengguna.AWS Cloud9 *  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  [Menjalankan (memanggil) atau debugging fungsi lokal](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di *AWS Toolkit for JetBrains*  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  [Menjalankan (memanggil) atau debugging fungsi lokal](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di *AWS Toolkit for JetBrains*  | 
| Penunggang | .NET | AWS Toolkit for JetBrains2 |  [Menjalankan (memanggil) atau debugging fungsi lokal](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di *AWS Toolkit for JetBrains*  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  [Menjalankan (memanggil) atau debugging fungsi lokal](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di *AWS Toolkit for JetBrains*  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  [Menjalankan (memanggil) atau debugging fungsi lokal](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di *AWS Toolkit for JetBrains*  | 

**Catatan:**

1.  AWS Cloud9 Untuk menggunakan AWS SAM aplikasi debug step-through, AWS Toolkit harus diaktifkan. Untuk informasi selengkapnya, lihat [Mengaktifkan AWS Toolkit](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit) di *AWS Cloud9 Panduan Pengguna*.

1. Untuk menggunakan AWS SAM aplikasi debug AWS Toolkit for JetBrains to step-through, Anda harus terlebih dahulu menginstal dan mengkonfigurasinya dengan mengikuti petunjuk yang ditemukan di [Instalasi AWS Toolkit for JetBrains di](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html). *AWS Toolkit for JetBrains*

## Berjalan AWS SAM secara lokal dalam mode debug
<a name="serverless-sam-cli-running-locally"></a>

[https://pypi.org/project/ptvsd/](https://pypi.org/project/ptvsd/)

Untuk menjalankan AWS SAM dalam mode debug, gunakan perintah [sam local invoke](sam-cli-command-reference-sam-local-invoke.md) atau [sam local start-api](sam-cli-command-reference-sam-local-start-api.md) dengan `-d` opsi `--debug-port` atau.

Contoh:

```
# Invoke a function locally in debug mode on port 5858
sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858
sam local start-api -d 5858
```

**catatan**  
Jika Anda menggunakan `sam local start-api`, instans API Gateway lokal memperlihatkan semua fungsi Lambda Anda. Namun, karena Anda dapat menentukan satu port debug, Anda hanya dapat men-debug satu fungsi dalam satu waktu. Anda perlu memanggil API Anda sebelum AWS SAMCLI mengikat ke port, yang memungkinkan debugger terhubung.

# Lewati beberapa argumen runtime saat men-debug dengan AWS SAM
<a name="serverless-sam-cli-using-debugging-additional-arguments"></a>

Anda dapat memilih untuk meneruskan argumen runtime tambahan AWS SAM untuk memeriksa masalah dan memecahkan masalah variabel secara lebih efektif. Melakukan hal ini memberikan kontrol dan fleksibilitas tambahan pada proses debugging Anda, yang dapat membantu Anda dengan konfigurasi dan lingkungan runtime yang disesuaikan.

Untuk meneruskan argumen waktu aktif tambahan ketika Anda men-debug fungsi, gunakan variabel lingkungan `DEBUGGER_ARGS`. Ini melewati serangkaian argumen langsung ke perintah run yang AWS SAMCLI digunakan untuk memulai fungsi Anda.

Misalnya, jika Anda ingin memuat debugger seperti i KPdb pada runtime fungsi Python Anda, Anda dapat meneruskan yang berikut ini sebagai. `DEBUGGER_ARGS: -m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0` Ini akan memuat i KPdb saat runtime dengan argumen lain yang telah Anda tentukan.

Dalam hal ini, AWS SAMCLI perintah lengkap Anda adalah:

```
DEBUGGER_ARGS="-m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0" echo {} | sam local invoke -d 5858 myFunction
```

Anda dapat meneruskan argumen debugger ke fungsi dari semua waktu aktif.

# Validasi AWS SAM aplikasi Anda dengan Linter CloudFormation
<a name="validate-cfn-lint"></a>

 AWS CloudFormation Linter (cfn-lint) adalah alat sumber terbuka yang dapat Anda gunakan untuk melakukan validasi terperinci pada templat Anda. CloudFormation CFN-lint berisi aturan yang dipandu oleh spesifikasi sumber daya. CloudFormation Gunakan cfn-lint untuk membandingkan sumber daya Anda dengan aturan tersebut untuk menerima pesan terperinci tentang kesalahan, peringatan, atau saran informasi. Atau, buat aturan kustom Anda sendiri untuk memvalidasi. *Untuk mempelajari lebih lanjut tentang cfn-lint, lihat [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) di repositori.CloudFormation GitHub * 

 Anda dapat menggunakan cfn-lint untuk memvalidasi template AWS Serverless Application Model (AWS SAM) Anda melalui AWS SAM Command Line Interface (AWS SAMCLI) dengan menjalankan **sam validate** opsi. **--lint** 

```
sam validate --lint
```

 Untuk menyesuaikan perilaku cfn-lint, seperti membuat aturan khusus atau menentukan opsi validasi, Anda dapat menentukan file konfigurasi. Untuk mempelajari lebih lanjut, lihat [File Config](https://github.com/aws-cloudformation/cfn-lint#config-file) di repositori * CloudFormation GitHub cfn-lint*. Saat Anda menjalankan**sam validate --lint**, perilaku cfn-lint yang ditentukan dalam file konfigurasi Anda akan diterapkan. 

## Contoh
<a name="validate-cfn-lint-examples"></a>

### Lakukan validasi cfn-lint pada template AWS SAM
<a name="validate-cfn-lint-examples-example1"></a>

```
sam validate --lint --template myTemplate.yaml
```

## Pelajari selengkapnya
<a name="validate-cfn-lint-learn"></a>

 Untuk mempelajari lebih lanjut tentang **sam validate**, perintah lihat [sam validate](sam-cli-command-reference-sam-validate.md). 