

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

# Menjalankan dan men-debug sumber daya Amazon API Gateway lokal
<a name="debug-apigateway"></a>

Anda dapat menjalankan atau men-debug sumber daya lokal AWS SAM API Gateway, yang ditentukan dalam`template.yaml`, dengan menjalankan konfigurasi peluncuran VS Code `type=aws-sam` dengan file. `invokeTarget.target=api`

**catatan**  
API Gateway mendukung dua jenis APIs, REST dan HTTP. Namun, fitur API Gateway dengan AWS Toolkit for Visual Studio Code satu-satunya mendukung REST APIs. Terkadang HTTP APIs disebut “API Gateway V2 APIs.”

**Untuk menjalankan dan men-debug sumber daya API Gateway lokal**

1.  Pilih salah satu pendekatan berikut untuk membuat konfigurasi peluncuran untuk sumber daya AWS SAM API Gateway: 
   + **Opsi 1:** **Kunjungi kode sumber handler (.js, .cs, atau file.py) di AWS SAM proyek Anda, arahkan kursor ke handler Lambda, dan pilih Tambahkan Konfigurasi Debug.** CodeLens Kemudian, di menu, pilih item yang ditandai **API Event**.
   + **Opsi 2:** Edit `launch.json` dan buat konfigurasi peluncuran baru menggunakan sintaks berikut.

     ```
     {
       "type": "aws-sam",
       "request": "direct-invoke",
       "name": "myConfig",
       "invokeTarget": {
         "target": "api",
         "templatePath": "n12/template.yaml",
         "logicalId": "HelloWorldFunction"
       },
       "api": {
         "path": "/hello",
         "httpMethod": "post",
         "payload": {
           "json": {}
         }
       }, 
       "sam": {},
       "aws": {}
     }
     ```

1. Di panel VS Code **Run**, pilih konfigurasi peluncuran (dinamai `myConfig` dalam contoh di atas).

1. (Opsional) Tambahkan titik henti ke kode proyek Lambda Anda.

1.  Ketik **F5** atau pilih **Play** di panel **Run**. 

1. Di panel output, lihat hasilnya. 

## Konfigurasi
<a name="apigateway-configuration"></a>

Ketika Anda menggunakan `invokeTarget.target` nilai properti `api`, Toolkit mengubah validasi dan perilaku konfigurasi peluncuran untuk mendukung bidang `api`. 

 

```
{
  "type": "aws-sam",
  "request": "direct-invoke",
  "name": "myConfig",
  "invokeTarget": {
    "target": "api",
    "templatePath": "n12/template.yaml",
    "logicalId": "HelloWorldFunction"
  },
  "api": {
    "path": "/hello",
    "httpMethod": "post",
    "payload": {
      "json": {}
    },
    "querystring": "abc=def&qrs=tuv",
    "headers": {
        "cookie": "name=value; name2=value2; name3=value3"
    }
  },
  "sam": {},
  "aws": {}
}
```

Ganti nilai-nilai dalam contoh sebagai berikut:

**invokeTarget.logicalId**  
Sumber daya API.

**path**  
Jalur API yang diminta oleh konfigurasi peluncuran, misalnya, `"path": "/hello"`.  
Harus merupakan jalur API valid yang diselesaikan dari `template.yaml` yang ditentukan oleh `invokeTarget.templatePath`.

**httpMethod**  
Salah satu kata kerja berikut: "delete", "get", "head", "options", "patch", "post", "put".

**payload**  
Muatan JSON (badan HTTP) untuk mengirim permintaan, dengan struktur dan aturan yang sama dengan bidang [lambda.payload](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html).  
`payload.path` menunjuk ke file yang berisi muatan JSON.  
`payload.json` menentukan muatan JSON sebaris.

**headers**  
Peta opsional pasangan nama-nilai, yang Anda gunakan untuk menentukan header HTTP untuk disertakan dalam permintaan, seperti yang ditunjukkan dalam contoh berikut.  

```
"headers": {
     "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5",
     "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5",
     "cookie": "name=value; name2=value2; name3=value3",
     "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
}
```

**querystring**  
String opsional yang menetapkan `querystring` dari permintaan, misalnya, `"querystring": "abc=def&ghi=jkl"`.

**AWS**  
Bagaimana informasi AWS koneksi disediakan. Untuk informasi selengkapnya, lihat tabel **properti AWS koneksi (“aws”)** di [Opsi konfigurasi untuk men-debug aplikasi nirserver](serverless-apps-run-debug-config-ref.md) bagian.

**sam**  
Bagaimana AWS SAM CLI membangun aplikasi. Untuk informasi lebih lanjut, lihat tabel **properti AWS SAM CLI (“sam”)** di bagian ini[Opsi konfigurasi untuk men-debug aplikasi nirserver](serverless-apps-run-debug-config-ref.md).