Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
DynamoDB Streams dan Waktu untuk Tayang
Anda dapat mencadangkan, atau memproses, item yang dihapus oleh Waktu untuk Tayang (TTL) dengan mengaktifkan Amazon DynamoDB Stream pada tabel dan memproses catatan stream dari item yang kedaluwarsa. Untuk informasi selengkapnya, lihat Membaca dan memproses aliran.
Catatan stream berisi bidang identitas pengguna Records[
.<index>
].userIdentity
Item yang dihapus oleh proses Waktu untuk Tayang setelah kedaluwarsa memiliki bidang berikut:
-
Records[
<index>
].userIdentity.type"Service"
-
Records[
<index>
].userIdentity.principalId"dynamodb.amazonaws.com"
catatan
Saat Anda menggunakan TTL dalam tabel global, wilayah tempat TTL dilakukan akan memiliki userIdentity
bidang yang ditetapkan. Bidang ini tidak akan disetel di wilayah lain saat penghapusan direplikasi.
JSON berikut menunjukkan bagian yang relevan dari catatan stream tunggal.
"Records": [ { ... "userIdentity": { "type": "Service", "principalId": "dynamodb.amazonaws.com" } ... } ]
Menggunakan DynamoDB Streams dan Lambda untuk mengarsipkan item TTL yang dihapus
Menggabungkan Waktu untuk Tayang (TTL) DynamoDB, DynamoDB Streams, dan AWS LambdaGetRecords
di aliran DynamoDB saat menggunakan Lambda untuk mengkonsumsi peristiwa, dan Lambda dapat menyediakan pemfilteran peristiwa dengan mengidentifikasi pola JSON dalam peristiwa streaming. Dengan pemfilteran konten pola peristiwa, Anda dapat menentukan hingga lima filter berbeda untuk mengontrol peristiwa mana yang dikirim ke Lambda untuk diproses. Hal ini membantu mengurangi pemanggilan fungsi Lambda Anda, menyederhanakan kode, dan mengurangi biaya keseluruhan.
Meskipun DynamoDB Streams berisi semua modifikasi data, seperti tindakan Create
, Modify
, dan Remove
, hal ini dapat mengakibatkan pemanggilan yang tidak diinginkan pada fungsi Lambda arsip Anda. Misalnya, Anda memiliki tabel dengan 2 juta modifikasi data per jam yang mengalir ke aliran, namun kurang dari 5 persen di antaranya adalah penghapusan item yang akan kedaluwarsa melalui proses TTL dan perlu diarsipkan. Dengan filter sumber acara Lambda, fungsi Lambda hanya akan dipanggil 100.000 kali per jam. Hasil dari pemfilteran peristiwa adalah Anda hanya dikenakan biaya untuk pemanggilan yang diperlukan, bukan 2 juta pemanggilan yang akan Anda dapatkan tanpa pemfilteran peristiwa.
Pemfilteran peristiwa diterapkan pada pemetaan sumber peristiwa Lambda, yang merupakan sumber daya yang membaca dari peristiwa yang dipilih—aliran DynamoDB—dan memanggil fungsi Lambda. Dalam diagram berikut, Anda dapat melihat bagaimana item Time to Live yang dihapus digunakan oleh fungsi Lambda menggunakan aliran dan filter peristiwa.
![Item yang dihapus melalui proses TTL memulai fungsi Lambda yang menggunakan aliran dan filter acara.](images/streams-lambda-ttl.png)
Pola filter peristiwa DynamoDB Waktu untuk Tayang
Menambahkan JSON berikut ke kriteria filter pemetaan sumber peristiwa Anda memungkinkan invokasi fungsi Lambda Anda hanya untuk item yang dihapus TTL:
{ "Filters": [ { "Pattern": { "userIdentity": { "type": ["Service"], "principalId": ["dynamodb.amazonaws.com"] } } } ] }
Buat pemetaan sumber AWS Lambda acara
Gunakan cuplikan kode berikut untuk membuat pemetaan sumber peristiwa terfilter yang dapat Anda sambungkan ke aliran DynamoDB tabel. Setiap blok kode menyertakan pola filter peristiwa.