

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

# Tutorial: Buat REST API dengan integrasi non-proxy Lambda
<a name="getting-started-lambda-non-proxy-integration"></a>

Dalam panduan ini, kami menggunakan konsol API Gateway untuk membangun API yang memungkinkan klien memanggil fungsi Lambda melalui integrasi non-proxy Lambda (juga dikenal sebagai integrasi khusus). Untuk informasi selengkapnya tentang AWS Lambda dan fungsi Lambda, lihat Panduan [AWS Lambda Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/). 

Untuk memfasilitasi pembelajaran, kami memilih fungsi Lambda sederhana dengan pengaturan API minimal untuk memandu Anda melalui langkah-langkah membangun API Gateway API dengan integrasi kustom Lambda. Bila perlu, kami menjelaskan beberapa logika. Untuk contoh lebih rinci tentang integrasi kustom Lambda, lihat. [Tutorial: Buat REST API kalkulator dengan dua integrasi AWS layanan dan satu integrasi non-proxy Lambda](integrating-api-with-aws-services-lambda.md) 

Sebelum membuat API, siapkan backend Lambda dengan membuat fungsi Lambda di, dijelaskan selanjutnya. AWS Lambda

**Topics**
+ [Buat fungsi Lambda untuk integrasi non-proxy Lambda](#getting-started-new-lambda)
+ [Buat API dengan integrasi non-proxy Lambda](#getting-started-new-api)
+ [Uji pemanggilan metode API](#getting-started-new-get)
+ [Terapkan API](#getting-started-deploy-api)
+ [Uji API dalam tahap penerapan](#getting-started-test)
+ [Bersihkan](#getting-started-clean-up)

## Buat fungsi Lambda untuk integrasi non-proxy Lambda
<a name="getting-started-new-lambda"></a>

**catatan**  
Membuat fungsi Lambda dapat mengakibatkan biaya ke akun Anda AWS .

 Pada langkah ini, Anda membuat “Halo, Dunia\$1” -seperti fungsi Lambda untuk integrasi kustom Lambda. Sepanjang panduan ini, fungsi ini disebut. `GetStartedLambdaIntegration`

 Implementasi fungsi `GetStartedLambdaIntegration` Lambda ini adalah sebagai berikut: 

------
#### [ Node.js ]

```
'use strict';
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];            
var times = ['morning', 'afternoon', 'evening', 'night', 'day'];

export const handler = async(event) => {
  console.log(event);
  // Parse the input for the name, city, time and day property values
  let name = event.name === null || event.name === undefined || event.name === "" ? 'you' : event.name;
  let city = event.city === undefined ? 'World' : event.city;
  let time = times.indexOf(event.time)<0 ? 'day' : event.time;
  let day = days.indexOf(event.day)<0 ? null : event.day;

  // Generate a greeting
  let greeting = 'Good ' + time + ', ' + name + ' of ' + city + '. ';
  if (day) greeting += 'Happy ' + day + '!';
  
  // Log the greeting to CloudWatch
  console.log('Hello: ', greeting);
  
  // Return a greeting to the caller
  return {"greeting": greeting}
};
```

------
#### [ Python ]

```
import json

days = {
    'Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday'}
times = {'morning', 'afternoon', 'evening', 'night', 'day'}


def lambda_handler(event, context):
    print(event)
    # parse the input for the name, city, time, and day property values
    name = event.get("name") or 'you'
    city = event.get("city") or 'World'
    try:
        if event['time'] in times:
            time = event['time']
        else:
            time = 'day'
    except KeyError:
        time = 'day'
    try:
        if event['day'] in days:
            day = event['day']
        else:
            day = ''
    except KeyError:
        day = ''
    # Generate a greeting
    greeting = 'Good ' + time + ', ' + name + ' of ' + \
        city + '.' + ['', ' Happy ' + day + '!'][day != '']
    # Log the greeting to CloudWatch
    print(greeting)

    # Return a greeting to the caller
    return {"greeting": greeting}
```

------

Untuk integrasi kustom Lambda, API Gateway meneruskan input ke fungsi Lambda dari klien sebagai badan permintaan integrasi. `event`Objek dari fungsi handler Lambda adalah input. 

Fungsi Lambda kami sederhana. Ini mem-parsing `event` objek input untuk`name`,, `city``time`, dan `day` properti. Kemudian mengembalikan salam, sebagai objek JSON dari`{"message":greeting}`, ke penelepon. Pesannya ada dalam `"Good [morning|afternoon|day], [name|you] in [city|World]. Happy day!"` pola. Diasumsikan bahwa input ke fungsi Lambda adalah dari objek JSON berikut: 

```
{
  "city": "...",
  "time": "...",
  "day": "...",
  "name" : "..."
}
```

Lihat informasi selengkapnya di [Panduan Developer AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html). 

Selain itu, fungsi mencatat eksekusinya ke Amazon CloudWatch dengan menelepon`console.log(...)`. Ini berguna untuk melacak panggilan saat men-debug fungsi. Untuk mengizinkan `GetStartedLambdaIntegration` fungsi mencatat panggilan, tetapkan peran IAM dengan kebijakan yang sesuai untuk fungsi Lambda untuk membuat CloudWatch aliran dan menambahkan entri log ke aliran. Konsol Lambda memandu Anda untuk membuat peran dan kebijakan IAM yang diperlukan.

Jika Anda menyiapkan API tanpa menggunakan konsol API Gateway, seperti saat [mengimpor API dari file OpenAPI](https://github.com/aws-samples/api-gateway-secure-pet-store/blob/master/src/main/resources/swagger.yaml#L39), Anda harus secara eksplisit membuat, jika perlu, dan menyiapkan peran dan kebijakan pemanggilan untuk API Gateway untuk menjalankan fungsi Lambda. Untuk informasi selengkapnya tentang cara menyiapkan peran pemanggilan dan eksekusi Lambda untuk API Gateway API, lihat. [Kontrol akses ke REST API dengan izin IAM](permissions.md) 

 Dibandingkan dengan`GetStartedLambdaProxyIntegration`, fungsi Lambda untuk integrasi proxy Lambda, fungsi Lambda untuk integrasi kustom `GetStartedLambdaIntegration` Lambda hanya mengambil masukan dari badan permintaan integrasi API Gateway API. Fungsi ini dapat mengembalikan output dari setiap objek JSON, string, angka, Boolean, atau bahkan blob biner. Fungsi Lambda untuk integrasi proxy Lambda, sebaliknya, dapat mengambil input dari data permintaan apa pun, tetapi harus mengembalikan output dari objek JSON tertentu. `GetStartedLambdaIntegration`Fungsi untuk integrasi kustom Lambda dapat memiliki parameter permintaan API sebagai input, asalkan API Gateway memetakan parameter permintaan API yang diperlukan ke badan permintaan integrasi sebelum meneruskan permintaan klien ke backend. Agar hal ini terjadi, pengembang API harus membuat template pemetaan dan mengonfigurasinya pada metode API saat membuat API. 

Sekarang, buat fungsi `GetStartedLambdaIntegration` Lambda. 

**Untuk membuat fungsi `GetStartedLambdaIntegration` Lambda untuk integrasi kustom Lambda**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Lakukan salah satu tindakan berikut:
   + Jika halaman selamat datang muncul, pilih **Mulai Sekarang** dan kemudian pilih **Buat fungsi**.
   + Jika halaman daftar **Lambda > Fungsi** muncul, pilih **Buat** fungsi.

1. Pilih **Tulis dari awal**. 

1. Di panel **Penulis dari awal**, lakukan hal berikut:

   1. Untuk **Nama**, masukkan **GetStartedLambdaIntegration** sebagai nama fungsi Lambda.

   1. Untuk **Runtime, pilih runtime** **Node.js** atau **Python** terbaru yang didukung.

   1. Untuk **Arsitektur**, pertahankan pengaturan default.

   1. (Opsional) Di bagian **Izin**, luaskan **Ubah peran eksekusi default**. Untuk daftar dropdown **peran eksekusi**, pilih **Buat peran baru dari templat AWS kebijakan**.

   1. Untuk **nama Peran**, masukkan nama untuk peran Anda (misalnya,**GetStartedLambdaIntegrationRole**).

   1. Untuk **templat Kebijakan**, pilih **Izin microservice sederhana**.

   1. Pilih **Buat fungsi**.

1. Di panel **Configure function**, di bawah **Kode fungsi** lakukan hal berikut:

   1. Salin kode fungsi Lambda yang tercantum di awal bagian ini dan tempel di editor kode sebaris.

   1. Tinggalkan pilihan default untuk semua bidang lain di bagian ini.

   1. Pilih **Deploy**.

1. Untuk menguji fungsi yang baru dibuat, pilih tab **Uji**.

   1. Untuk **Nama peristiwa**, masukkan **HelloWorldTest**. 

   1. Untuk **Event JSON**, ganti kode default dengan yang berikut ini.

      ```
      {
        "name": "Jonny",
        "city": "Seattle",
        "time": "morning",
        "day": "Wednesday"
      }
      ```

   1.  Pilih **Uji** untuk menjalankan fungsi. **Hasil eksekusi: bagian berhasil** ditampilkan. Perluas **Detail** dan Anda melihat output berikut.

      ```
      {
          "greeting": "Good morning, Jonny of Seattle. Happy Wednesday!"
      }
      ```

      Outputnya juga ditulis ke CloudWatch Log. 

 Sebagai latihan sampingan, Anda dapat menggunakan konsol IAM untuk melihat peran IAM (`GetStartedLambdaIntegrationRole`) yang dibuat sebagai bagian dari pembuatan fungsi Lambda. Terlampir pada peran IAM ini adalah dua kebijakan inline. Satu menetapkan izin paling dasar untuk eksekusi Lambda. Ini memungkinkan memanggil CloudWatch sumber daya apa pun dari akun Anda di wilayah tempat fungsi Lambda dibuat. CloudWatch `CreateLogGroup` Kebijakan ini juga memungkinkan pembuatan CloudWatch stream dan peristiwa logging untuk fungsi `GetStartedLambdaIntegration` Lambda. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "arn:aws:logs:us-east-1:111111111111:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111111111111:log-group:/aws/lambda/GetStartedLambdaIntegration:*"
            ]
        }
    ]
}
```

------

Dokumen kebijakan lainnya berlaku untuk memanggil AWS layanan lain yang tidak digunakan dalam contoh ini. Anda dapat melewatkannya untuk saat ini. 

 Terkait dengan peran IAM adalah entitas tepercaya, yaitu`lambda.amazonaws.com`. Inilah hubungan kepercayaannya: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

 Kombinasi hubungan kepercayaan ini dan kebijakan sebaris memungkinkan fungsi Lambda memanggil fungsi untuk mencatat peristiwa ke `console.log()` Log. CloudWatch 

## Buat API dengan integrasi non-proxy Lambda
<a name="getting-started-new-api"></a>

 Dengan fungsi Lambda (`GetStartedLambdaIntegration`) yang dibuat dan diuji, Anda siap mengekspos fungsi tersebut melalui API Gateway API. Untuk tujuan ilustrasi, kami mengekspos fungsi Lambda dengan metode HTTP generik. Kami menggunakan badan permintaan, variabel jalur URL, string kueri, dan header untuk menerima data input yang diperlukan dari klien. Kami mengaktifkan validator permintaan API Gateway untuk API untuk memastikan bahwa semua data yang diperlukan didefinisikan dan ditentukan dengan benar. Kami mengonfigurasi template pemetaan untuk API Gateway untuk mengubah data permintaan yang disediakan klien menjadi format yang valid seperti yang dipersyaratkan oleh fungsi Lambda backend.

**Untuk membuat API dengan integrasi non-proxy Lambda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Jika ini adalah pertama kalinya Anda menggunakan API Gateway, Anda akan melihat halaman yang memperkenalkan Anda ke fitur layanan. Di bawah **REST API**, pilih **Build**. **Saat munculan **Create Example API** muncul, pilih OK.**

   Jika ini bukan pertama kalinya Anda menggunakan API Gateway, pilih **Buat API**. Di bawah **REST API**, pilih **Build**.

1.  Untuk **nama API**, masukkan**LambdaNonProxyAPI**.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. Tetap tetapkan **jenis endpoint API** ke **Regional**.

1. Untuk **jenis alamat IP**, pilih **IPv4**.

1. Pilih **Buat API**.

Setelah membuat API Anda, Anda membuat sumber daya**/\$1city\$1**. Ini adalah contoh sumber daya dengan variabel jalur yang mengambil masukan dari klien. Kemudian, Anda memetakan variabel jalur ini ke input fungsi Lambda menggunakan template pemetaan.

**Untuk membuat sumber daya**

1. Pilih **Buat sumber daya**.

1. Matikan **sumber daya Proxy**. 

1. Pertahankan **jalur Sumber Daya** sebagai`/`.

1. Untuk **Nama sumber daya**, masukkan **\$1city\$1**.

1. Tetap nonaktifkan **CORS (Cross Origin Resource Sharing)**.

1. Pilih **Buat sumber daya**.

Setelah membuat sumber daya**/\$1city\$1** Anda, Anda membuat `ANY` metode. Kata kerja `ANY` HTTP adalah placeholder untuk metode HTTP yang valid yang klien kirimkan pada waktu berjalan. Contoh ini menunjukkan bahwa `ANY` metode dapat digunakan untuk integrasi kustom Lambda serta untuk integrasi proxy Lambda.

**Untuk membuat `ANY` metode**

1. Pilih sumber daya**/\$1city\$1**, lalu pilih **Create method**.

1. Untuk **jenis Metode**, pilih **APAPUN**.

1. Untuk **jenis Integrasi**, pilih fungsi **Lambda**.

1. Matikan **integrasi proxy Lambda**.

1. Untuk **fungsi Lambda**, pilih Wilayah AWS tempat Anda membuat fungsi Lambda Anda, lalu masukkan nama fungsi.

1. Pilih **Pengaturan permintaan Metode.**

   Sekarang, Anda mengaktifkan validator permintaan untuk variabel jalur URL, parameter string kueri, dan header untuk memastikan bahwa semua data yang diperlukan ditentukan. Untuk contoh ini, Anda membuat parameter string `time` kueri dan `day` header. 

1. Untuk **validator Permintaan**, pilih **Validasi parameter string kueri** dan header.

1. Pilih **parameter string kueri URL** dan lakukan hal berikut: 

   1. Pilih **Tambahkan string kueri**.

   1. Untuk **Nama**, masukkan **time**.

   1. Aktifkan **Diperlukan**.

   1. Tetap **caching** dimatikan. 

1. Pilih **header permintaan HTTP** dan lakukan hal berikut: 

   1. Pilih **Tambahkan header**.

   1. Untuk **Nama**, masukkan **day**.

   1. Aktifkan **Diperlukan**.

   1. Tetap **caching** dimatikan. 

1. Pilih **metode Buat**.

Setelah mengaktifkan validator permintaan, Anda mengonfigurasi permintaan integrasi untuk `ANY` metode dengan menambahkan templat pemetaan tubuh untuk mengubah permintaan yang masuk menjadi payload JSON, seperti yang dipersyaratkan oleh fungsi Lambda backend. 

**Untuk mengkonfigurasi permintaan integrasi**

1. Pada tab **Permintaan integrasi**, di bawah **pengaturan permintaan Integrasi**, pilih **Edit**.

1. Untuk **Request body passthrough**, pilih **Bila tidak ada templat yang ditentukan (disarankan)**.

1. Pilih **Template pemetaan**.

1. Pilih **Tambahkan templat pemetaan**.

1. Untuk **jenis Konten**, masukkan**application/json**.

1. Untuk **badan Template**, masukkan kode berikut:

   ```
   #set($inputRoot = $input.path('$'))
   {
     "city": "$input.params('city')",
     "time": "$input.params('time')",
     "day":  "$input.params('day')",
     "name": "$inputRoot.callerName"
   }
   ```

1. Pilih **Simpan**.

## Uji pemanggilan metode API
<a name="getting-started-new-get"></a>

 Konsol API Gateway menyediakan fasilitas pengujian bagi Anda untuk menguji pemanggilan API sebelum diterapkan. Anda menggunakan fitur Uji konsol untuk menguji API dengan mengirimkan permintaan berikut: 

```
POST /Seattle?time=morning
day:Wednesday

{
    "callerName": "John"
}
```

 Dalam permintaan pengujian ini, Anda akan mengatur `ANY` ke`POST`, mengatur `{city}` ke`Seattle`, menetapkan `Wednesday` sebagai nilai `day` header, dan menetapkan `"John"` sebagai nilai`callerName`. 

**Untuk menguji `ANY` metode**

1. Pilih tab **Uji**. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

1. Untuk **jenis Metode**, pilih`POST`.

1. Untuk **Path**, di bawah **kota**, masuk**Seattle**.

1. Untuk **string Query**, masukkan**time=morning**.

1. Untuk **Header**, masukkan**day:Wednesday**.

1. Untuk **Badan Permintaan**, masukkan**\$1 "callerName": "John" \$1**.

1. Pilih **Uji**.

Verifikasi bahwa muatan respons yang dikembalikan adalah sebagai berikut:

```
{
  "greeting": "Good morning, John of Seattle. Happy Wednesday!"
}
```

Anda juga dapat melihat log untuk memeriksa bagaimana API Gateway memproses permintaan dan respons.

```
Execution log for request test-request
Thu Aug 31 01:07:25 UTC 2017 : Starting execution for request: test-invoke-request
Thu Aug 31 01:07:25 UTC 2017 : HTTP Method: POST, Resource Path: /Seattle
Thu Aug 31 01:07:25 UTC 2017 : Method request path: {city=Seattle}
Thu Aug 31 01:07:25 UTC 2017 : Method request query string: {time=morning}
Thu Aug 31 01:07:25 UTC 2017 : Method request headers: {day=Wednesday}
Thu Aug 31 01:07:25 UTC 2017 : Method request body before transformations: { "callerName": "John" }
Thu Aug 31 01:07:25 UTC 2017 : Request validation succeeded for content type application/json
Thu Aug 31 01:07:25 UTC 2017 : Endpoint request URI: https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:GetStartedLambdaIntegration/invocations
Thu Aug 31 01:07:25 UTC 2017 : Endpoint request headers: {x-amzn-lambda-integration-tag=test-request, Authorization=****************************************************************************************************************************************************************************************************************************************************************************************************************************************338c72, X-Amz-Date=20170831T010725Z, x-amzn-apigateway-api-id=beags1mnid, X-Amz-Source-Arn=arn:aws:execute-api:us-west-2:123456789012:beags1mnid/null/POST/{city}, Accept=application/json, User-Agent=AmazonAPIGateway_beags1mnid, X-Amz-Security-Token=FQoDYXdzELL//////////wEaDMHGzEdEOT/VvGhabiK3AzgKrJw+3zLqJZG4PhOq12K6W21+QotY2rrZyOzqhLoiuRg3CAYNQ2eqgL5D54+63ey9bIdtwHGoyBdq8ecWxJK/YUnT2Rau0L9HCG5p7FC05h3IvwlFfvcidQNXeYvsKJTLXI05/yEnY3ttIAnpNYLOezD9Es8rBfyruHfJfOqextKlsC8DymCcqlGkig8qLKcZ0hWJWVwiPJiFgL7laabXs++ZhCa4hdZo4iqlG729DE4gaV1mJVdoAagIUwLMo+y4NxFDu0r7I0/EO5nYcCrppGVVBYiGk7H4T6sXuhTkbNNqVmXtV3ch5bOlh7 [TRUNCATED]
Thu Aug 31 01:07:25 UTC 2017 : Endpoint request body after transformations: {
  "city": "Seattle",
  "time": "morning",
  "day": "Wednesday",
  "name" : "John"
}
Thu Aug 31 01:07:25 UTC 2017 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:GetStartedLambdaIntegration/invocations
Thu Aug 31 01:07:25 UTC 2017 : Received response. Integration latency: 328 ms
Thu Aug 31 01:07:25 UTC 2017 : Endpoint response body before transformations: {"greeting":"Good morning, John of Seattle. Happy Wednesday!"}
Thu Aug 31 01:07:25 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=c0475a28-8de8-11e7-8d3f-4183da788f0f, Connection=keep-alive, Content-Length=62, Date=Thu, 31 Aug 2017 01:07:25 GMT, X-Amzn-Trace-Id=root=1-59a7614d-373151b01b0713127e646635;sampled=0, Content-Type=application/json}
Thu Aug 31 01:07:25 UTC 2017 : Method response body after transformations: {"greeting":"Good morning, John of Seattle. Happy Wednesday!"}
Thu Aug 31 01:07:25 UTC 2017 : Method response headers: {X-Amzn-Trace-Id=sampled=0;root=1-59a7614d-373151b01b0713127e646635, Content-Type=application/json}
Thu Aug 31 01:07:25 UTC 2017 : Successfully completed execution
Thu Aug 31 01:07:25 UTC 2017 : Method completed with status: 200
```

Log menampilkan permintaan masuk sebelum pemetaan dan permintaan integrasi setelah pemetaan. Ketika pengujian gagal, log berguna untuk mengevaluasi apakah input asli benar atau template pemetaan berfungsi dengan benar. 

## Terapkan API
<a name="getting-started-deploy-api"></a>

 Doa tes adalah simulasi dan memiliki keterbatasan. Misalnya, ia melewati mekanisme otorisasi apa pun yang diberlakukan pada API. Untuk menguji eksekusi API secara real time, Anda harus menerapkan API terlebih dahulu. Untuk menerapkan API, Anda membuat tahapan untuk membuat snapshot API pada saat itu. Nama stage juga mendefinisikan path dasar setelah nama host default API. Sumber daya root API ditambahkan setelah nama panggung. Saat memodifikasi API, Anda harus menerapkannya kembali ke tahap baru atau yang sudah ada sebelum perubahan diterapkan. 

**Untuk menerapkan API ke panggung**

1. Pilih **Deploy API**.

1. Untuk **Stage**, pilih **New stage**.

1. Untuk **nama Panggung**, masukkan**test**.
**catatan**  
Input harus berupa teks yang dikodekan UTF-8 (yaitu, tidak terlokalisasi).

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. Pilih **Deploy**.

Di bawah **Detail tahap**, pilih ikon salin untuk menyalin URL pemanggilan API Anda. Pola umum URL dasar API adalah`https://api-id.region.amazonaws.com/stageName`. Misalnya, URL dasar API (`beags1mnid`) yang dibuat di `us-west-2` wilayah dan diterapkan ke `test` panggung adalah`https://beags1mnid.execute-api.us-west-2.amazonaws.com/test`.

## Uji API dalam tahap penerapan
<a name="getting-started-test"></a>

Ada beberapa cara Anda dapat menguji API yang diterapkan. Untuk permintaan GET yang hanya menggunakan variabel jalur URL atau parameter string kueri, Anda dapat memasukkan URL sumber daya API di browser. Untuk metode lain, Anda harus menggunakan utilitas pengujian REST API yang lebih canggih, seperti [POSTMAN](https://www.postman.com/) atau [cURL](https://curl.se/).

**Untuk menguji API menggunakan cURL**

1. Buka jendela terminal di komputer lokal Anda yang terhubung ke internet.

1. Untuk menguji`POST /Seattle?time=evening`:

   Salin perintah cURL berikut dan tempel ke jendela terminal.

   ```
   curl -v -X POST \
     'https://beags1mnid.execute-api.us-west-2.amazonaws.com/test/Seattle?time=evening' \
     -H 'content-type: application/json' \
     -H 'day: Thursday' \
     -H 'x-amz-docs-region: us-west-2' \
     -d '{
   	"callerName": "John"
   }'
   ```

   Anda harus mendapatkan respons yang sukses dengan muatan berikut:

   ```
   {"greeting":"Good evening, John of Seattle. Happy Thursday!"}
   ```

   Jika Anda `POST` mengubah `PUT` permintaan metode ini, Anda mendapatkan respons yang sama.

## Bersihkan
<a name="getting-started-clean-up"></a>

Jika Anda tidak lagi membutuhkan fungsi Lambda yang Anda buat untuk panduan ini, Anda dapat menghapusnya sekarang. Anda juga dapat menghapus sumber daya IAM yang menyertainya.

**Awas**  
Jika Anda berencana untuk menyelesaikan penelusuran lain dalam seri ini, jangan hapus peran eksekusi Lambda atau peran pemanggilan Lambda. Jika Anda menghapus fungsi Lambda yang Anda APIs andalkan, fungsi tersebut tidak APIs akan berfungsi lagi. Menghapus fungsi Lambda tidak dapat dibatalkan. Jika Anda ingin menggunakan fungsi Lambda lagi, Anda harus membuat ulang fungsi tersebut.  
Jika Anda menghapus sumber daya IAM yang bergantung pada fungsi Lambda, fungsi Lambda itu tidak akan berfungsi lagi, dan APIs semua yang bergantung pada fungsi itu tidak akan berfungsi lagi. Menghapus sumber daya IAM tidak dapat dibatalkan. Jika Anda ingin menggunakan sumber daya IAM lagi, Anda harus membuat ulang sumber daya. 

**Untuk menghapus fungsi Lambda**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Dari daftar fungsi, pilih **GetStartedLambdaIntegration**, pilih **Tindakan**, lalu pilih **Hapus fungsi**. Saat diminta, pilih **Hapus** lagi.

**Untuk menghapus sumber daya IAM terkait**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dari **Detail**, pilih **Peran**.

1. Dari daftar peran, pilih **GetStartedLambdaIntegrationRole**, pilih **Tindakan Peran**, lalu pilih **Hapus Peran**. Ikuti langkah-langkah di konsol untuk menghapus peran.