

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

# Memproses acara DynamoDB dengan AWS SAM
<a name="serverless-example-ddb"></a>



Dengan aplikasi contoh ini, Anda membangun hal yang Anda pelajari dalam gambaran umum dan panduan Quick Start, serta menginstal aplikasi contoh lain. Aplikasi ini terdiri dari fungsi Lambda yang dipanggil oleh sumber peristiwa tabel DynamoDB. Fungsi Lambda sangat sederhana, fungsi Lambda mencatat data yang diteruskan melalui pesan sumber peristiwa.

Latihan ini menunjukkan cara meniru pesan sumber peristiwa yang diteruskan ke fungsi Lambda saat dipanggil.



## Sebelum Anda mulai
<a name="gs-ex2-prereq"></a>

Pastikan bahwa Anda telah menyelesaikan penyiapan yang diperlukan di dalam [Instal AWS SAMCLI](install-sam-cli.md).

## Langkah 1: Inisialisasi aplikasi
<a name="gs-ex2-setup-local-app"></a>

Di bagian ini, Anda mengunduh paket aplikasi, yang terdiri dari AWS SAM templat dan kode aplikasi.

**Untuk menginisialisasi aplikasi**

1. Jalankan perintah berikut pada AWS SAMCLI command prompt.

   ```
   sam init \
   --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \
   --no-input
   ```

   Perhatikan bahwa `gh:` dalam perintah di atas akan diperluas ke GitHub url`https://github.com/`.

1. Tinjau konten direktori yang dibuat oleh perintah (`dynamodb_event_reader/`): 
   + `template.yaml`— Mendefinisikan dua AWS sumber daya yang dibutuhkan aplikasi Read DynamoDB: fungsi Lambda dan tabel DynamoDB. Templat juga menentukan pemetaan antara dua sumber daya.
   + Direktori `read_dynamodb_event/` - Berisi kode aplikasi DynamoDB.

## Langkah 2: Uji aplikasi secara lokal
<a name="gs-ex2-test-locally"></a>

Untuk pengujian lokal, gunakan AWS SAMCLI untuk menghasilkan contoh peristiwa DynamoDB dan menjalankan fungsi Lambda:

```
sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent
```

`generate-event`Perintah membuat pesan sumber peristiwa pengujian seperti pesan yang dibuat saat semua komponen disebarkan ke AWS Cloud. Pesan sumber peristiwa ini disalurkan ke fungsi ReadDynamo DBEvent Lambda.

Verifikasi bahwa pesan yang diharapkan, dicetak ke konsol tersebut, berdasarkan kode sumber di `app.py`.

## Langkah 3: Buat paket aplikasi
<a name="gs-ex2-setup-pacakge-app"></a>

Setelah menguji aplikasi Anda secara lokal, Anda menggunakan AWS SAMCLI untuk membuat paket penyebaran, yang Anda gunakan untuk menyebarkan aplikasi ke Cloud. AWS 

**Untuk membuat paket deployment Lambda**

1. Buat bucket S3 di lokasi tempat Anda ingin menyimpan kode yang dipaketkan. Jika Anda ingin menggunakan bucket S3 yang sudah ada, lewati langkah ini.

   ```
   aws s3 mb s3://bucketname
   ```

1. Buat paket deployment dengan menjalankan perintah CLI `package` berikut pada prompt perintah. 

   ```
   sam package \
       --template-file template.yaml \
       --output-template-file packaged.yaml \
       --s3-bucket bucketname
   ```

   Anda tentukan file templat baru, `packaged.yaml`, saat Anda men-deploy aplikasi di langkah berikutnya.

## Langkah 4: Deploy aplikasi
<a name="gs-ex2-setup-deploy-app"></a>

Sekarang setelah Anda membuat paket penyebaran, Anda menggunakannya untuk menyebarkan aplikasi ke Cloud. AWS Lalu Anda uji aplikasi tersebut.

**Untuk menyebarkan aplikasi tanpa server ke Cloud AWS**
+ Dalam AWS SAMCLI, gunakan perintah `deploy` CLI untuk menyebarkan semua sumber daya yang Anda tentukan dalam template. 

  

  ```
  sam deploy \
      --template-file packaged.yaml \
      --stack-name sam-app \
      --capabilities CAPABILITY_IAM \
      --region us-east-1
  ```

  Dalam perintah tersebut, parameter `--capabilities` memungkinkan AWS CloudFormation untuk membuat IAM role. 

  CloudFormation menciptakan AWS sumber daya yang didefinisikan dalam template. Anda dapat mengakses nama-nama sumber daya ini di CloudFormation konsol.

**Untuk menguji aplikasi tanpa server di Cloud AWS**

1. Buka konsol DynamoDB.

1. Masukkan catatan ke dalam tabel yang baru saja Anda buat.

1. Buka tab **Metrik** tabel, dan pilih **Lihat semua CloudWatch metrik**. Di CloudWatch konsol, pilih **Log** untuk dapat melihat output log.

## Langkah selanjutnya
<a name="gs-ex2-setup-deploy-app-next-steps"></a>

Untuk terus mempelajarinya AWS SAM, lihat sumber daya berikut:
+ **[Serverless Land](https://serverlessland.com/patterns?framework=AWS+SAM)** — Situs yang menyatukan pola tanpa server, contoh kode, dan sumber daya pembelajaran khusus untuk aplikasi SAM. AWS 