Memproses acara DynamoDB dengan AWS SAM - AWS Serverless Application Model

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

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

Pastikan bahwa Anda telah menyelesaikan penyiapan yang diperlukan di dalam Instal AWS SAM CLI.

Langkah 1: Inisialisasi aplikasi

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 urlhttps://github.com/.

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

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

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
  2. Buat paket deployment dengan menjalankan package CLI perintah berikut di command prompt.

    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

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 deploy CLI perintah 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, --capabilities parameter memungkinkan AWS CloudFormation untuk membuat IAM peran.

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

Untuk menguji aplikasi tanpa server di Cloud AWS
  1. Buka konsol DynamoDB.

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

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

Langkah selanjutnya

AWS SAM GitHub Repositori berisi contoh aplikasi tambahan untuk Anda unduh dan bereksperimen. Untuk mengakses repositori ini, lihat contoh aplikasi AWS SAM.