मैंने डायनमो टेबल सेट किया है और स्ट्रीम को सक्षम किया है और कॉलम में से एक पर टीटीएल (टाइमटोलाइव) भी सक्षम किया है। मेरे पास एक लैम्ब्डा भी है जो डायनेमो स्ट्रीम से प्रवेश खींचेगा।

अब या तो मैं जोड़ता हूं, हटाता हूं या संपादित करता हूं, या टीटीएल समाप्त हो जाता है - यह सब लैम्ब्डा आमंत्रण का कारण बनता है।

मुझे ईवेंट जोड़ने या संपादित करने में कोई दिलचस्पी नहीं है, मैं केवल स्ट्रीम को हटाए गए, टीटीएल की समय सीमा समाप्त प्रविष्टियों को प्राप्त करना चाहता हूं, क्या यह संभव है?

साथ ही, मैं निश्चित रूप से अपने लैम्ब्डा कोड में एक चेक डाल सकता हूं और केवल तभी प्रक्रिया कर सकता हूं जब घटना प्रकार "हटाएं", लेकिन फिर भी जोड़ने के लिए लैम्ब्डा आमंत्रण, संपादन की परवाह किए बिना होगा। कृपया मार्गदर्शन करें

1
Unbreakable 29 अक्टूबर 2020, 06:25

1 उत्तर

सबसे बढ़िया उत्तर

अफसोस की बात है कि आप केवल वस्तुओं को हटाने या समाप्त होने को स्ट्रीम करने के लिए डायनेमोडीबी स्ट्रीम नहीं बना सकते हैं। रुचियों की घटनाओं को फ़िल्टर करने के लिए सब कुछ स्ट्रीम किया जाता है, और यह आपके लैम्ब्डा फ़ंक्शन पर निर्भर करता है।

TTL की समय सीमा समाप्त आइटम के लिए, आपके फ़ंक्शन को जांचें:


        "userIdentity":{
            "type":"Service",
            "principalId":"dynamodb.amazonaws.com"
        }

एक वैकल्पिक तरीका है, केवल टीटीएल मार्करों के साथ दूसरी तालिका है। यह उपयोगी हो सकता है, यदि आपकी प्राथमिक तालिका में बहुत सारे अपडेट और संशोधन होते हैं। इस तरह, आपकी दूसरी टेबल पर स्ट्रीम प्रत्येक आइटम के लिए आपके फ़ंक्शन को केवल दो बार आमंत्रित करेगी, यानी निर्माण और टीटीएल समाप्ति, बल्कि उन सभी अपडेट के लिए जिनमें आप रुचि नहीं रखते हैं।

1
Marcin 29 अक्टूबर 2020, 04:31