Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik menggunakan DynamoDB Streams dengan Lambda
AWS Lambda Fungsi berjalan di dalam wadah —lingkungan eksekusi yang diisolasi dari fungsi lain. Ketika Anda menjalankan fungsi untuk pertama kalinya, AWS Lambda membuat wadah baru dan mulai mengeksekusi kode fungsi.
Fungsi Lambda memiliki handler yang dijalankan sekali per permohonan. Handler berisi logika bisnis utama untuk fungsi. Misalnya, fungsi Lambda yang ditampilkan dalam Langkah 4: Buat dan uji fungsi Lambda memiliki handler yang dapat memproses catatan dalam DynamoDB stream.
Anda juga dapat memberikan kode inisialisasi yang hanya berjalan satu kali—setelah penampung dibuat, tetapi sebelumnya AWS Lambda menjalankan handler untuk pertama kalinya. Fungsi Lambda yang ditampilkan Langkah 4: Buat dan uji fungsi Lambda memiliki kode inisialisasi yang mengimpor SDK untuk JavaScript masuk Node.js, dan membuat klien untuk Amazon SNS. Objek-objek ini hanya boleh didefinisikan sekali, di luar handler.
Setelah fungsi berjalan, AWS Lambda mungkin memilih untuk menggunakan kembali wadah untuk pemanggilan fungsi berikutnya. Dalam kasus ini, handler fungsi Anda mungkin dapat menggunakan kembali sumber daya yang Anda tetapkan dalam kode inisialisasi Anda. (Anda tidak dapat mengontrol berapa lama AWS Lambda akan mempertahankan kontainer, atau apakah kontainer akan digunakan kembali.)
Untuk pemicu DynamoDB AWS Lambda menggunakan, kami merekomendasikan hal berikut:
-
AWS klien layanan harus dipakai dalam kode inisialisasi, bukan di handler. Ini memungkinkan AWS Lambda untuk menggunakan kembali koneksi yang ada, selama masa pakai kontainer.
-
Secara umum, Anda tidak perlu secara eksplisit mengelola koneksi atau menerapkan penyatuan koneksi karena AWS Lambda mengelola ini untuk Anda.
Konsumen Lambda untuk aliran DynamoDB menyediakan pengiriman paling tidak sekali: tidak menjamin pengiriman tepat sekali dan mungkin memproses catatan yang sama lebih dari sekali (misalnya, saat pemanggilan fungsi dicoba ulang). Ini berbeda dari jaminan DynamoDB Streams bahwa setiap rekaman aliran muncul tepat sekali dalam aliran — yang menjamin catatan yang disimpan dalam aliran, bukan berapa kali konsumen memprosesnya. Untuk mencegah masalah tak terduga dari pemrosesan duplikat, pastikan kode fungsi Lambda Anda idempoten.
Untuk informasi selengkapnya, lihat Praktik terbaik untuk bekerja dengan AWS Lambda fungsi di Panduan AWS Lambda Pengembang.