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 akan melalui tahapan berikut:
-
Siapkan cluster Amazon DocumentDB Anda, sambungkan ke sana, dan aktifkan aliran perubahan di dalamnya.
-
Buat fungsi Lambda Anda, dan konfigurasikan cluster Amazon DocumentDB Anda sebagai sumber peristiwa untuk fungsi Anda.
-
Uji end-to-end penyiapan dengan memasukkan item ke dalam database Amazon DocumentDB Anda.
Topik
Prasyarat
Jika Anda belum menginstal AWS Command Line Interface, ikuti langkah-langkah di Menginstal atau memperbarui versi terbaru AWS CLI untuk menginstalnya.
Tutorial ini membutuhkan terminal baris perintah atau shell untuk menjalankan perintah. Di Linux dan macOS, gunakan shell dan manajer paket pilihan Anda.
catatan
Di Windows, beberapa perintah Bash CLI yang biasa Anda gunakan dengan Lambda (zip
seperti) tidak didukung oleh terminal bawaan sistem operasi. Untuk mendapatkan versi terintegrasi Windows dari Ubuntu dan Bash, instal Windows Subsystem untuk
Ciptakan AWS Cloud9 lingkungan

Sebelum membuat fungsi Lambda, Anda perlu membuat dan mengonfigurasi cluster Amazon DocumentDB Anda. Langkah-langkah untuk mengatur cluster Anda dalam tutorial ini didasarkan pada prosedur di Memulai dengan Amazon DocumentDB.
catatan
Jika Anda sudah menyiapkan kluster Amazon DocumentDB, pastikan Anda mengaktifkan aliran perubahan dan membuat titik akhir VPC antarmuka yang diperlukan. Kemudian, Anda dapat langsung melompat ke langkah-langkah pembuatan fungsi.
Pertama, ciptakan AWS Cloud9 lingkungan. Anda akan menggunakan lingkungan ini di seluruh tutorial ini untuk terhubung ke dan menanyakan cluster Amazon DocumentDB Anda.
Untuk menciptakan AWS Cloud9 lingkungan
-
Buka AWS Cloud9 konsol
dan pilih Buat lingkungan. -
Buat lingkungan dengan konfigurasi berikut:
-
Di bawah Detail:
-
Nama:
DocumentDBCloud9Environment
-
Jenis lingkungan: EC2 Contoh baru
-
-
Di bawah EC2 contoh Baru:
-
Jenis instans:
t2.micro
(1 GiB RAM+1 vCPU) -
Platform: Amazon Linux 2
-
Batas waktu: 30 menit
-
-
Di bawah Pengaturan jaringan:
-
Koneksi: AWS Systems Manager (SSM)
-
Perluas dropdown pengaturan VPC.
-
Amazon Virtual Private Cloud (VPC: Pilih VPC default Anda.
-
Subnet: Tidak ada preferensi
-
-
Simpan semua pengaturan default lainnya.
-
-
Pilih Buat. Penyediaan AWS Cloud9 lingkungan baru Anda dapat memakan waktu beberapa menit.
Buat grup EC2 keamanan Amazon

Selanjutnya, buat grup EC2 keamanan Amazon dengan aturan yang memungkinkan lalu lintas antara cluster Amazon DocumentDB Anda dan lingkungan Anda. AWS Cloud9
Untuk membuat grup EC2 keamanan
-
Buka konsol EC2
. Di bawah Jaringan dan Keamanan, pilih Grup keamanan. -
Pilih Buat grup keamanan.
-
Buat grup keamanan dengan konfigurasi berikut:
-
Di bawah rincian dasar:
-
Nama grup keamanan:
DocDBTutorial
-
Deskripsi: Grup keamanan untuk lalu lintas antara AWS Cloud9 dan Amazon DocumentDB.
-
VPC: Pilih VPC default Anda.
-
-
Di Aturan masuk, pilih Tambahkan aturan. Buat aturan dengan konfigurasi berikut:
-
Jenis: TCP Kustom
-
Rentang pelabuhan: 27017
-
Sumber: Kustom
-
Di kotak pencarian di sebelah Sumber, pilih grup keamanan untuk AWS Cloud9 lingkungan yang Anda buat di langkah sebelumnya. Untuk melihat daftar grup keamanan yang tersedia, masukkan
cloud9
di kotak pencarian. Pilih grup keamanan dengan namaaws-cloud9-<environment_name>
.
-
-
Simpan semua pengaturan default lainnya.
-
-
Pilih Buat grup keamanan.
Buat cluster Amazon DocumentDB

Pada langkah ini, Anda akan membuat cluster Amazon DocumentDB menggunakan grup keamanan dari langkah sebelumnya.
Untuk membuat cluster Amazon DocumentDB
-
Buka konsol Amazon DocumentDB
. Di bawah Cluster, pilih Buat. -
Buat cluster dengan konfigurasi berikut:
-
Untuk tipe Cluster, pilih Instance Based Cluster.
-
Di bawah Konfigurasi:
-
Versi mesin: 5.0.0
-
Kelas instance: db.t3.medium (uji coba gratis memenuhi syarat)
-
Jumlah contoh: 1
-
-
Di bawah Otentikasi:
-
Masukkan Nama Pengguna dan Kata Sandi yang diperlukan untuk terhubung ke klaster Anda (kredensi yang sama seperti yang Anda gunakan untuk membuat rahasia di langkah sebelumnya). Di Konfirmasi kata sandi, konfirmasikan kata sandi Anda.
-
-
Aktifkan Tampilkan pengaturan lanjutan.
-
Di bawah Pengaturan jaringan:
-
Virtual Private Cloud (VPC): Pilih VPC default Anda.
-
Grup subnet: default
-
Grup keamanan VPC: Selain itu
default (VPC)
, pilih grupDocDBTutorial (VPC)
keamanan yang Anda buat di langkah sebelumnya.
-
-
Simpan semua pengaturan default lainnya.
-
-
Pilih Buat klaster. Penyediaan cluster Amazon DocumentDB Anda dapat memakan waktu beberapa menit.
Buat rahasia di Secrets Manager

Untuk mengakses klaster Amazon DocumentDB Anda secara manual, Anda harus memberikan kredensi nama pengguna dan kata sandi. Agar Lambda dapat mengakses klaster Anda, Anda harus memberikan rahasia Secrets Manager yang berisi kredenal akses yang sama ini saat menyiapkan pemetaan sumber acara Anda. Pada langkah ini, Anda akan membuat rahasia ini.
Untuk membuat rahasia di Secrets Manager
-
Buka konsol Secrets Manager
dan pilih Simpan rahasia baru. -
Untuk Pilih jenis rahasia, pilih opsi berikut:
-
Di bawah rincian dasar:
-
Jenis rahasia: Kredensi untuk database Amazon DocumentDB Anda
-
Di bawah Kredensial, masukkan nama pengguna dan kata sandi yang akan Anda gunakan untuk mengakses klaster 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
DocumentDBSecret
rahasia.
Catat ARN Rahasia rahasia Anda. Anda akan membutuhkannya di langkah selanjutnya.
Instal cangkang mongo

Pada langkah ini, Anda akan menginstal shell mongo di AWS Cloud9 lingkungan Anda. Mongo shell adalah utilitas baris perintah yang Anda gunakan untuk menghubungkan dan menanyakan cluster Amazon DocumentDB Anda.
Untuk menginstal shell mongo di lingkungan Anda AWS Cloud9
-
Buka konsol AWS Cloud9
. Di sebelah DocumentDBCloud9Environment
lingkungan yang Anda buat sebelumnya, klik tautan Buka di bawah kolom AWS Cloud9 IDE. -
Di jendela terminal, buat file repositori MongoDB dengan perintah berikut:
echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
-
Kemudian, instal shell mongo dengan perintah berikut:
sudo yum install -y mongodb-org-shell
-
Untuk mengenkripsi data dalam perjalanan, unduh kunci publik untuk Amazon DocumentDB
. Perintah berikut mengunduh file bernama global-bundle.pem
:wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Connect ke cluster Amazon DocumentDB

Anda sekarang siap untuk terhubung ke cluster Amazon DocumentDB Anda menggunakan shell mongo.
Untuk terhubung ke cluster Amazon DocumentDB Anda
-
Buka konsol Amazon DocumentDB
. Di bawah Cluster, pilih klaster Anda dengan memilih pengenal klaster. -
Di tab Connectivity & security, di bawah Connect to this cluster with the mongo shell, pilih Copy.
-
Di AWS Cloud9 lingkungan Anda, tempelkan perintah ini ke terminal. Ganti
<insertYourPassword>
dengan kata sandi yang benar.
Setelah memasukkan perintah ini, jika command prompt menjadirs0:PRIMARY>
, maka Anda 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. Pertama, buat docdbdemo
database dan uji dengan memasukkan catatan.
Untuk membuat database baru di dalam klaster Anda
-
Di AWS Cloud9 lingkungan Anda, pastikan Anda masih terhubung ke cluster Amazon DocumentDB Anda.
-
Di jendela terminal, gunakan perintah berikut untuk membuat database baru yang disebut
docdbdemo
:use docdbdemo
-
Kemudian, gunakan perintah berikut untuk menyisipkan catatan ke
docdbdemo
:db.products.insert({"hello":"world"})
Anda akan melihat output seperti ini:
WriteResult({ "nInserted" : 1 })
-
Gunakan perintah berikut untuk daftar semua database:
show dbs
Pastikan output Anda berisi
docdbdemo
database:docdbdemo 0.000GB
Selanjutnya, aktifkan aliran perubahan pada products
koleksi docdbdemo
database 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 antarmuka VPC endpoint

Selanjutnya, buat titik akhir VPC antarmuka untuk memastikan bahwa Lambda dan Secrets Manager (digunakan nanti untuk menyimpan kredenal akses cluster kami) dapat terhubung ke VPC default Anda.
Untuk membuat titik akhir VPC antarmuka
-
Buka konsol 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
lambda
di kotak pencarian. Pilih layanan dengan formatcom.amazonaws.<region>.lambda
. -
Untuk Subnet, centang kotak di sebelah setiap zona ketersediaan. Pilih subnet ID yang benar untuk setiap zona ketersediaan.
-
Untuk jenis alamat IP, pilih IPv4.
-
Untuk grup Keamanan, pilih grup keamanan VPC default (Nama grup
default
), dan grup keamanan yang Anda buat sebelumnya (Nama grup).DocDBTutorial
-
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
secretsmanager
di kotak pencarian. Pilih layanan dengan formatcom.amazonaws.<region>.secretsmanager
. -
Untuk Subnet, centang kotak di sebelah setiap zona ketersediaan. Pilih subnet ID yang benar untuk setiap zona ketersediaan.
-
Untuk jenis alamat IP, pilih IPv4.
-
Untuk grup Keamanan, pilih grup keamanan VPC default (Nama grup
default
), dan grup keamanan yang Anda buat sebelumnya (Nama grup).DocDBTutorial
-
Simpan semua pengaturan default lainnya.
-
Pilih Buat Titik Akhir.
-
Ini melengkapi bagian pengaturan cluster dari tutorial ini.
Buat peran eksekusi

Pada rangkaian langkah berikutnya, Anda akan membuat fungsi Lambda Anda. Pertama, Anda perlu membuat peran eksekusi yang memberikan izin fungsi Anda untuk mengakses klaster 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 ARN sumber daya Secrets Manager di baris terakhir pernyataan dengan ARN rahasia Anda dari sebelumnya, dan salin kebijakan ke editor.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LambdaESMNetworkingAccess", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "LambdaDocDBESMAccess", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters", "rds:DescribeDBClusterParameters", "rds:DescribeDBSubnetGroups" ], "Resource": "*" }, { "Sid": "LambdaDocDBESMGetSecretValueAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:DocumentDBSecret" } ] }
-
Pilih Berikutnya: Tag, lalu pilih Berikutnya: Tinjau.
-
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
-
Kasus penggunaan - Lambda
-
Pilih Berikutnya.
-
-
Untuk Menambahkan izin, pilih
AWSDocumentDBLambdaPolicy
kebijakan yang baru saja Anda buat, sertaAWSLambdaBasicExecutionRole
untuk memberikan izin fungsi Anda untuk menulis ke Amazon CloudWatch Logs. -
Pilih Berikutnya.
-
Untuk Nama peran, masukkan
AWSDocumentDBLambdaExecutionRole
. -
Pilih Buat peran.
Buat fungsi Lambda

Kode contoh berikut menerima input peristiwa Amazon DocumentDB dan memproses pesan yang dikandungnya.
Untuk membuat fungsi Lambda
-
Salin kode sampel ke file dengan nama
index.js
. -
Buat paket penyebaran dengan perintah berikut.
zip function.zip index.js
-
Gunakan perintah CLI berikut untuk membuat fungsi. Ganti
us-east-1
dengan Wilayah AWS, dan123456789012
dengan ID akun Anda.aws lambda create-function \ --function-name ProcessDocumentDBRecords \ --zip-file fileb://function.zip --handler index.handler --runtime nodejs22.x \ --region us-east-1 \ --role arn:aws:iam::123456789012:role/AWSDocumentDBLambdaExecutionRole
Buat pemetaan sumber acara Lambda

Buat pemetaan sumber peristiwa yang mengaitkan aliran perubahan Amazon DocumentDB Anda dengan fungsi Lambda Anda. Setelah Anda membuat pemetaan sumber acara ini, AWS Lambda segera mulai polling aliran.
Untuk membuat pemetaan sumber acara
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih
ProcessDocumentDBRecords
fungsi yang Anda buat sebelumnya. -
Pilih tab Konfigurasi, lalu pilih Pemicu di menu sebelah kiri.
-
Pilih Tambahkan pemicu.
-
Di bawah konfigurasi Trigger, untuk sumbernya, pilih Amazon DocumentDB.
-
Buat pemetaan sumber acara dengan konfigurasi berikut:
-
Cluster Amazon DocumentDB — Pilih cluster yang Anda buat sebelumnya.
-
Nama basis data -
docdbdemo
-
Nama koleksi - produk
-
Ukuran Batch - 1
-
Posisi awal - Terbaru
-
Otentikasi — BASIC_AUTH
-
Kunci Secrets Manager - Pilih yang baru saja
DocumentDBSecret
Anda buat. -
Jendela Batch - 1
-
Konfigurasi dokumen lengkap - UpdateLookup
-
-
Pilih Tambahkan. Membuat pemetaan sumber acara Anda dapat memakan waktu beberapa menit.
Uji fungsi Anda - pemanggilan manual

Untuk menguji apakah Anda membuat pemetaan fungsi dan sumber peristiwa dengan benar, panggil fungsi Anda menggunakan perintah. invoke
Untuk melakukan ini, pertama salin peristiwa berikut JSON ke dalam file bernamainput.txt
:
{ "eventSourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:canaryclusterb2a659a2-qo5tcmqkcl03", "events": [ { "event": { "_id": { "_data": "0163eeb6e7000000090100000009000041e1" }, "clusterTime": { "$timestamp": { "t": 1676588775, "i": 9 } }, "documentKey": { "_id": { "$oid": "63eeb6e7d418cd98afb1c1d7" } }, "fullDocument": { "_id": { "$oid": "63eeb6e7d418cd98afb1c1d7" }, "anyField": "sampleValue" }, "ns": { "db": "docdbdemo", "coll": "products" }, "operationType": "insert" } } ], "eventSource": "aws:docdb" }
Kemudian, gunakan perintah berikut untuk memanggil fungsi Anda dengan acara ini:
aws lambda invoke \ --function-name ProcessDocumentDBRecords \ --cli-binary-format raw-in-base64-out \ --region us-east-1 \ --payload file://input.txt out.txt
Anda akan melihat respons yang terlihat seperti berikut:
{ "StatusCode": 200, "ExecutedVersion": "$LATEST" }
Anda dapat memverifikasi bahwa fungsi Anda berhasil memproses peristiwa dengan memeriksa CloudWatch Log.
Untuk memverifikasi pemanggilan manual melalui Log CloudWatch
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih tab Monitor, lalu pilih Lihat CloudWatch log. Ini akan membawa Anda ke grup log tertentu yang terkait dengan fungsi Anda di CloudWatch konsol.
-
Pilih aliran log terbaru. Dalam pesan log, Anda akan melihat acara JSON.
Uji fungsi Anda - masukkan catatan

Uji end-to-end penyiapan Anda dengan berinteraksi langsung dengan database Amazon DocumentDB Anda. Pada rangkaian langkah berikutnya, Anda akan memasukkan catatan, memperbaruinya, lalu menghapusnya.
Untuk menyisipkan catatan
-
Sambungkan kembali ke cluster Amazon DocumentDB di lingkungan Anda. AWS Cloud9
-
Gunakan perintah ini untuk memastikan bahwa Anda saat ini menggunakan
docdbdemo
database:use docdbdemo
-
Masukkan catatan ke dalam
products
koleksidocdbdemo
database:db.products.insert({"name":"Pencil", "price": 1.00})
Uji fungsi Anda - perbarui catatan

Selanjutnya, perbarui catatan yang baru saja Anda masukkan dengan perintah berikut:
db.products.update( { "name": "Pencil" }, { $set: { "price": 0.50 }} )
Verifikasi bahwa fungsi Anda berhasil memproses peristiwa ini dengan memeriksa CloudWatch Log.
Uji fungsi Anda - hapus catatan

Terakhir, hapus catatan yang baru saja Anda perbarui dengan perintah berikut:
db.products.remove( { "name": "Pencil" } )
Verifikasi bahwa fungsi Anda berhasil memproses peristiwa ini dengan memeriksa CloudWatch Log.
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
confirm
kolom input teks dan pilih Hapus.
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 Hapus.
Untuk menghapus titik akhir VPC
-
Buka konsol 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
delete
di bidang input teks. -
Pilih Hapus.
Untuk menghapus cluster Amazon DocumentDB
-
Buka konsol Amazon DocumentDB
. -
Pilih cluster Amazon DocumentDB yang Anda buat untuk tutorial ini, dan nonaktifkan perlindungan penghapusan.
-
Di halaman utama Clusters, pilih kembali cluster Amazon DocumentDB Anda.
-
Pilih Tindakan, Hapus.
-
Untuk Buat snapshot klaster akhir, pilih No.
-
Masukkan
delete
di bidang input teks. -
Pilih Hapus.
Untuk menghapus rahasia di Secrets Manager
-
Buka konsol Secrets Manager
. -
Pilih rahasia yang Anda buat untuk tutorial ini.
-
Pilih Tindakan, Hapus rahasia.
-
Pilih Jadwalkan penghapusan.
Untuk menghapus grup EC2 keamanan Amazon
-
Buka konsol EC2
. Di bawah Jaringan dan Keamanan, pilih Grup keamanan. -
Pilih grup keamanan yang Anda buat untuk tutorial ini.
-
Pilih Tindakan, Hapus grup keamanan.
-
Pilih Hapus.
Untuk menghapus AWS Cloud9 lingkungan
-
Buka konsol AWS Cloud9
. -
Pilih lingkungan yang Anda buat untuk tutorial ini.
-
Pilih Hapus.
-
Masukkan
delete
di bidang input teks. -
Pilih Hapus.