Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Menggunakan AWS Lambda dengan Amazon DocumentDB Streams
Dalam tutorial ini, Anda membuat fungsi Lambda dasar yang menggunakan peristiwa dari aliran perubahan Amazon DocumentDB (dengan kompatibilitas MongoDB). Untuk menyelesaikan tutorial ini, Anda melalui tahapan berikut:
-
Siapkan cluster Amazon DocumentDB Anda, sambungkan ke klaster tersebut, dan aktifkan aliran perubahan di dalamnya.
-
Buat fungsi Lambda Anda, dan konfigurasikan cluster Amazon DocumentDB Anda sebagai sumber peristiwa untuk fungsi Anda.
-
Uji pengaturan dengan memasukkan item ke database Amazon DocumentDB Anda.
Membuat cluster Amazon DocumentDB
-
Buka konsol https://console.aws.amazon.com/docdb/home#
Amazon DocumentDB. Di bawah Cluster, pilih Buat. -
Buat cluster dengan konfigurasi berikut:
-
Untuk tipe Cluster, pilih Instance-based cluster. Ini adalah pilihan default.
-
Di bawah Konfigur asi Cluster, pastikan Engine versi 5.0.0 dipilih. Ini adalah pilihan default.
-
Di bawah konfigurasi Instance:
-
Untuk kelas instance DB, pilih kelas yang dioptimalkan memori. Ini adalah pilihan default.
-
Untuk Jumlah instance replika biasa, pilih 1.
-
Untuk kelas Inst ance, gunakan pilihan default.
-
-
Di bawah O tentikasi, masukkan nama pengguna untuk pengguna utama, lalu pilih Dik elola sendiri. Masukkan kata sandi, lalu konfirmasikan.
-
Simpan semua pengaturan default lainnya.
-
-
Pilih Buat klaster.
Buat rahasia di Manajer Rahasia
Saat Amazon DocumentDB membuat cluster Anda, buat AWS Secrets Manager rahasia untuk menyimpan kredenSIAL database Anda. Anda akan memberikan rahasia ini saat membuat pemetaan sumber peristiwa Lambda di langkah selanjutnya.
Untuk membuat rahasia di Manajer Rahasia
-
Buka konsol
Secrets Manager dan pilih Simpan rahasia baru. -
Untuk Pilih jenis rahasia, pilih opsi berikut:
-
Di bawah Detail Dasar:
-
Jenis rahasia: KredenSIAL untuk database Amazon DocumentDB Anda
-
Di bawah Kredensi, masukkan nama pengguna dan kata sandi yang sama yang Anda gunakan untuk membuat cluster Amazon DocumentDB Anda.
-
Database: Pilih cluster Amazon DocumentDB Anda.
-
Pilih Berikutnya.
-
-
-
Untuk Konfigurasi rahasia, pilih opsi berikut:
-
Nama rahasia:
DocumentDBSecret -
Pilih Berikutnya.
-
-
Pilih Berikutnya.
-
Pilih Toko.
-
Segarkan konsol untuk memverifikasi bahwa Anda berhasil menyimpan
DocumentDBSecretrahasia.
Perhatikan Rahasia ARN. Anda akan membutuhkannya di langkah selanjutnya.
Menyambungkan ke klaster
Hubungkan ke cluster Amazon DocumentDB menggunakan AWS CloudShell
-
Di konsol manajemen Amazon DocumentDB, di bawah Clu ster, cari cluster yang Anda buat. Pilih cluster Anda dengan memilih kotak centang di sebelahnya.
-
Pilih Hu bungkan ke cluster. L CloudShell ayar perintah Run muncul.
-
Di bidang Nama lingkungan baru, masukkan nama unik, seperti “uji” dan pilih Buat dan jalankan.
-
Saat diminta, masukkan kata sandi Anda. Ketika prompt muncul
rs0 [direct: primary] <env-name>>, Anda berhasil terhubung ke cluster Amazon DocumentDB Anda.
Aktifkan aliran perubahan
Untuk tutorial ini, Anda akan melacak perubahan pada products koleksi docdbdemo database di cluster Amazon DocumentDB Anda. Anda melakukan ini dengan mengaktifkan aliran perubahan.
Untuk membuat database baru dalam cluster Anda
-
Jalankan perintah berikut untuk membuat database baru yang disebut
docdbdemo:use docdbdemo -
Di jendela terminal, gunakan perintah berikut untuk memasukkan catatan ke
docdbdemo:db.products.insertOne({"hello":"world"})Anda akan melihat output seperti ini:
{ acknowledged: true, insertedId: ObjectId('67f85066ca526410fd531d59') } -
Selanjutnya, aktifkan aliran perubahan pada
productskoleksidocdbdemodatabase menggunakan perintah berikut:db.adminCommand({modifyChangeStreams: 1, database: "docdbdemo", collection: "products", enable: true});Anda akan melihat output seperti ini:
{ "ok" : 1, "operationTime" : Timestamp(1680126165, 1) }
Buat titik akhir antarmuka VPC
Selanjutnya, buat titik akhir VPC antarmuka untuk memastikan bahwa Lambda dan Secrets Manager (digunakan nanti untuk menyimpan kredenSIAL akses cluster kami) dapat terhubung ke VPC default Anda.
Untuk membuat titik akhir VPC antarmuka
-
Buka konsol https://console.aws.amazon.com/vpc/home#
VPC. Di menu sebelah kiri, di bawah Virtual private cloud, pilih Endpoints. -
Pilih Buat titik akhir. Buat titik akhir dengan konfigurasi berikut:
-
Untuk Tag Nama, masukkan
lambda-default-vpc. -
Untuk kategori Layanan, pilih AWS layanan.
-
Untuk Layanan, masukkan
lambdadi kotak pencarian. Pilih layanan dengan formatcom.amazonaws.<region>.lambda. -
Untuk VPC, pilih VPC tempat cluster Amazon DocumentDB Anda berada. Ini biasanya VPC https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html default.
-
Untuk Subnets, centang kotak di samping setiap zona ketersediaan. Pilih ID subnet yang benar untuk setiap zona ketersediaan.
-
Untuk jenis alamat IP, pilih IPv4.
-
Untuk grup Keamanan, pilih grup keamanan yang digunakan cluster Amazon DocumentDB Anda. Ini biasanya kelompok
defaultkeamanan. -
Simpan semua pengaturan default lainnya.
-
Pilih Buat titik akhir.
-
-
Sekali lagi, pilih Buat titik akhir. Buat titik akhir dengan konfigurasi berikut:
-
Untuk Tag Nama, masukkan
secretsmanager-default-vpc. -
Untuk kategori Layanan, pilih AWS layanan.
-
Untuk Layanan, masukkan
secretsmanagerdi kotak pencarian. Pilih layanan dengan formatcom.amazonaws.<region>.secretsmanager. -
Untuk VPC, pilih VPC tempat cluster Amazon DocumentDB Anda berada. Ini biasanya VPC https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html default.
-
Untuk Subnets, centang kotak di samping setiap zona ketersediaan. Pilih ID subnet yang benar untuk setiap zona ketersediaan.
-
Untuk jenis alamat IP, pilih IPv4.
-
Untuk grup Keamanan, pilih grup keamanan yang digunakan cluster Amazon DocumentDB Anda. Ini biasanya kelompok
defaultkeamanan. -
Simpan semua pengaturan default lainnya.
-
Pilih Buat titik akhir.
-
Ini melengkapi bagian pengaturan cluster dari tutorial ini.
Buat peran eksekusi
Dalam rangkaian langkah berikutnya, Anda akan membuat fungsi Lambda Anda. Pertama, Anda perlu membuat peran eksekusi yang memberikan izin fungsi Anda untuk mengakses cluster Anda. Anda melakukannya dengan membuat kebijakan IAM terlebih dahulu, lalu melampirkan kebijakan ini ke peran IAM.
Untuk membuat kebijakan IAM
-
Buka halaman Kebijakan
di konsol IAM dan pilih Buat kebijakan. -
Pilih tab JSON. Dalam kebijakan berikut, ganti sumber daya Manajer Rahasia ARN di baris terakhir pernyataan dengan ARN rahasia Anda dari sebelumnya, dan salin kebijakan ke editor.
-
Pilih Berikutnya: Tag, lalu pilih Berikutnya: Review.
-
Untuk Nama, masukkan
AWSDocumentDBLambdaPolicy. -
Pilih Buat kebijakan.
Untuk membuat peran IAM
-
Buka halaman Peran
di konsol IAM dan pilih Buat peran. -
Untuk Pilih entitas tepercaya, pilih opsi berikut:
-
Jenis entitas tepercaya: AWS layanan
-
Layanan atau kasus penggunaan: Lambda
-
Pilih Berikutnya.
-
-
Untuk Tambah izin, pilih
AWSDocumentDBLambdaPolicykebijakan yang baru saja Anda buat, sertaAWSLambdaBasicExecutionRoleuntuk memberikan izin fungsi Anda untuk menulis ke Amazon CloudWatch Logs. -
Pilih Berikutnya.
-
Untuk Nama peran, masukkan
AWSDocumentDBLambdaExecutionRole. -
Pilih Buat peran.
Buat fungsi Lambda
Tutorial ini menggunakan runtime Python 3.14, tetapi kami juga telah menyediakan file kode contoh untuk runtime lainnya. Anda dapat memilih tab di kotak berikut untuk melihat kode untuk runtime yang Anda minati.
Kode menerima input acara Amazon DocumentDB dan memproses pesan yang dikandungnya.
Untuk membuat fungsi Lambda
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih Buat fungsi.
-
Pilih Penulis dari awal
-
Di bagian Informasi dasar, lakukan hal berikut:
-
Untuk Nama fungsi, masukkan
ProcessDocumentDBRecords -
Untuk Runtime, pilih Python 3.14.
-
Untuk Arsitektur, pilih x86_64.
-
-
Di tab Ubah peran eksekusi default, lakukan hal berikut:
-
Perluas tab, lalu pilih Gunakan peran yang ada.
-
Pilih yang
AWSDocumentDBLambdaExecutionRoleAnda buat sebelumnya.
-
-
Pilih Buat fungsi.
Untuk menerapkan kode fungsi
-
Pilih tab Python di kotak berikut dan salin kodenya.
-
Di panel sumber kode pada konsol Lambda, tempel kode ke editor kode, menggantikan kode yang dibuat Lambda.
-
Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda:
Buat pemetaan sumber peristiwa Lambda
Buat pemetaan sumber peristiwa yang mengaitkan aliran perubahan Amazon DocumentDB Anda dengan fungsi Lambda Anda. Setelah Anda membuat pemetaan sumber peristiwa ini, AWS Lambda segera mulai polling aliran.
Untuk membuat pemetaan sumber peristiwa
-
Buka halaman Functions
di konsol Lambda. -
Pilih
ProcessDocumentDBRecordsfungsi yang Anda buat sebelumnya. -
Pilih tab Konfigurasi, lalu pilih Pem icu di menu sebelah kiri.
-
Pilih Tambahkan pemicu.
-
Di bawah Konfigurasi pemicu, untuk sumber, pilih Amazon DocumentDB.
-
Buat pemetaan sumber acara dengan konfigurasi berikut:
-
Cluster Amazon DocumentDB: Pilih cluster yang Anda buat sebelumnya.
-
Nama database: docdbdemo
-
Nama koleksi: produk
-
Ukuran batch: 1
-
Posisi awal: Terbaru
-
Otentikasi: BASIC_AUTH
-
Kunci Manajer Rahasia: Pilih rahasia untuk cluster Amazon DocumentDB Anda. Ini disebut sesuatu seperti
rds!cluster-12345678-a6f0-52c0-b290-db4aga89274f. -
Jendela batch: 1
-
Konfigurasi dokumen lengkap: UpdateLookup
-
-
Pilih Tambahkan. Membuat pemetaan sumber acara Anda dapat memakan waktu beberapa menit.
Uji fungsi Anda
Tunggu pemetaan sumber peristiwa mencapai status Diaktifkan. Ini dapat memakan waktu beberapa menit. Kemudian, uji pengaturan ujung ke ujung dengan memasukkan, memperbarui, dan menghapus catatan database. Sebelum Anda memulai:
-
Sambungkan kembali ke cluster Amazon DocumentDB di lingkungan Anda CloudShell .
-
Jalankan perintah berikut untuk memastikan bahwa Anda menggunakan
docdbdemodatabase:use docdbdemo
Masukkan catatan ke dalam products koleksi docdbdemo database:
db.products.insertOne({"name":"Pencil", "price": 1.00})
Verifikasi bahwa fungsi Anda berhasil memproses peristiwa ini dengan memeriksa CloudWatch Log. Anda akan melihat entri log seperti ini:
Perbarui catatan yang baru saja Anda masukkan dengan perintah berikut:
db.products.updateOne( { "name": "Pencil" }, { $set: { "price": 0.50 }} )
Verifikasi bahwa fungsi Anda berhasil memproses peristiwa ini dengan memeriksa CloudWatch Log. Anda akan melihat entri log seperti ini:
Hapus catatan yang baru saja Anda perbarui dengan perintah berikut:
db.products.deleteOne( { "name": "Pencil" } )
Verifikasi bahwa fungsi Anda berhasil memproses peristiwa ini dengan memeriksa CloudWatch Log. Anda akan melihat entri log seperti ini:
Pemecahan masalah
Jika Anda tidak melihat peristiwa database apa pun di CloudWatch log fungsi Anda, periksa hal berikut:
-
Pastikan pemetaan sumber peristiwa Lambda (juga dikenal sebagai pemicu) berada dalam status Di aktifkan. Pemetaan sumber peristiwa dapat memakan waktu beberapa menit untuk dibuat.
-
Jika pemetaan sumber peristiwa Di aktifkan tetapi Anda masih tidak melihat peristiwa database di CloudWatch:
-
Pastikan nama Database dalam pemetaan sumber peristiwa disetel ke
docdbdemo.
-
Periksa bidang pemetaan sumber peristiwa Hasil pemrosesan terakhir untuk pesan berikut “MASALAH: Kesalahan koneksi. VPC Anda harus dapat terhubung ke Lambda dan STS, serta Manajer Rahasia jika otentikasi diperlukan. Jika Anda melihat kesalahan ini, pastikan Anda membuat titik akhir antarmuka VPC Lambda dan Secrets Manager, dan bahwa titik akhir menggunakan VPC dan subnet yang sama dengan yang digunakan cluster Amazon DocumentDB Anda.
-
Bersihkan sumber daya Anda
Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus sumber daya AWS yang tidak lagi Anda gunakan, Anda mencegah biaya yang tidak perlu untuk Akun AWS Anda.
Untuk menghapus fungsi Lambda
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi yang Anda buat.
-
Pilih Tindakan, Hapus.
-
Ketik
confirmdi bidang input teks dan pilih H apus.
Untuk menghapus peran eksekusi
-
Buka halaman Peran
dari konsol IAM. -
Pilih peran eksekusi yang Anda buat.
-
Pilih Hapus.
-
Masukkan nama peran di bidang input teks dan pilih H apus.
Untuk menghapus titik akhir VPC
-
Buka konsol https://console.aws.amazon.com/vpc/home#
VPC. Di menu sebelah kiri, di bawah Virtual private cloud, pilih Endpoints. -
Pilih titik akhir yang Anda buat.
-
Pilih Tindakan, Hapus titik akhir VPC.
-
Masukkan
deletedi bidang input teks. -
Pilih Hapus.
Untuk menghapus cluster Amazon DocumentDB
-
Buka konsol https://console.aws.amazon.com/docdb/home#
Amazon DocumentDB. -
Pilih cluster Amazon DocumentDB yang Anda buat untuk tutorial ini, dan nonaktifkan perlindungan penghapusan.
-
Di halaman Clu ster utama, pilih cluster Amazon DocumentDB Anda lagi.
-
Pilih Tindakan, Hapus.
-
Untuk Buat snapshot cluster akhir, pilih Tidak.
-
Masukkan
deletedi bidang input teks. -
Pilih Hapus.
Untuk menghapus rahasia di Manajer Rahasia
-
Buka konsol
Secrets Manager. -
Pilih rahasia yang Anda buat untuk tutorial ini.
-
Pilih T ind akan, Hapus rahasia.
-
Pilih Jadwalkan penghapusan.