इवेंट लाइफसाइकल संभालना: retries, DLQs और destinations

AWS Lambda के साथ Serverless Applications

Claudio Canales

Senior DevOps Engineer

इवेंट लाइफसाइकल एक नज़र में

  • Lambda आपका हैंडलर invoke करता है.
  • हैंडलर या तो सफल होता है या विफल.
  • विफल होने पर, retries और routing तय करते हैं आगे क्या होगा.

इवेंट लाइफसाइकल फ्लो

AWS Lambda के साथ Serverless Applications

विफलताएँ दो तरह से दिखती हैं

Synchronous

  • कॉलर इंतज़ार करता है और error response पाता है.

Asynchronous

  • कॉलर को पहले acknowledge किया जाता है.
  • Lambda बैकग्राउंड में retries करता है.
  • विफलता हैंडलिंग invocation mode पर निर्भर है.

सिंक बनाम एसिंक फेल्योर पाथ

AWS Lambda के साथ Serverless Applications

Retries सामान्य हैं

  • Retries अक्सर फ़ीचर होते हैं, बग नहीं.
  • अस्थायी विफलता अगली कोशिश में सफल हो सकती है.
  • Retries duplicate प्रोसेसिंग करा सकते हैं; आपका हैंडलर इसे संभाले.

रीट्राई रेडायलिंग एनालॉजी

AWS Lambda के साथ Serverless Applications

समय के साथ Retries

  • Retries अस्थायी मुद्दों से उबार सकते हैं.
  • पर वही इवेंट कई बार चल सकता है.
  • Idempotency और साफ error handling आवश्यक हैं.

रीट्राई प्रयास टाइमलाइन

AWS Lambda के साथ Serverless Applications

जब retries खतरनाक होते हैं

  • जब काम idempotent नहीं है, retries जोखिम भरे हैं.
  • उदाहरण: कार्ड चार्ज करना, ईमेल भेजना.
  • Idempotency keys और safe updates का उपयोग करें ताकि डुप्लिकेट नुकसान न करें.

Idempotency का लक्ष्य

AWS Lambda के साथ Serverless Applications

DLQ (Dead-Letter Queue)

  • ऐसे इवेंट्स के लिए सुरक्षित जगह जो retries के बाद भी विफल हों.
  • अक्सर एक SQS queue, AWS की managed message queue.
  • payload जाँचें, समस्या ठीक करें, और re-drive करें.

DLQ लॉस्ट-एंड-फाउंड एनालॉजी

AWS Lambda के साथ Serverless Applications

DLQ बनाम destinations

DLQ लॉस्ट-एंड-फाउंड एनालॉजी

  • Retries के बाद विफल इवेंट्स कैप्चर करता है.
  • जाँच-पड़ताल के लिए उपयोग करें.

Destinations रूटिंग डायग्राम

  • सफलता या विफलता पर outcomes route करें.
  • स्पष्ट success और failure paths बनाएँ.
AWS Lambda के साथ Serverless Applications

Destinations: सफलता और विफलता रूट्स

  • सफलता पर, result onSuccess को भेजें.
  • विफलता पर, विवरण onFailure को भेजें.
  • इससे अगला कदम स्पष्ट होता है.

Destinations रूटिंग डायग्राम

AWS Lambda के साथ Serverless Applications

रीट्राई पॉलिसी ट्यून करना

  • तय करें Lambda कितनी बार retries करे.
  • stale डेटा से बचने को event age सीमित करें.
  • अधिक retries विश्वसनीयता बढ़ाते हैं, पर डुप्लिकेट और विलंब भी.

रीट्राई पॉलिसी कंट्रोल्स

AWS Lambda के साथ Serverless Applications

Maximum event age: एक एक्सपाइरी डेट

  • Maximum event age एक expiration policy है.
  • इवेंट बहुत पुराना हो तो प्रोसेस करना बेकार हो सकता है.
  • समझौता: कम लेट इवेंट्स, ज़्यादा समयबद्ध व्यवहार.

इवेंट एज एक्सपाइरेशन एनालॉजी

AWS Lambda के साथ Serverless Applications

Observability: कहाँ देखें

  • Logs बताते हैं क्या हुआ.
  • Metrics बताते हैं यह कितनी बार हो रहा है.
  • Alarms स्पाइक्स जल्दी पकड़ने में मदद करते हैं.

लॉग्स बनाम मेट्रिक्स

AWS Lambda के साथ Serverless Applications

विफल इवेंट्स के साथ क्या करें

  • payload और error जाँचें.
  • root cause ठीक करें.
  • इवेंट re-drive करें, फिर errors और throughput मॉनिटर करें.

विफल इवेंट्स रिकवरी साइकिल

AWS Lambda के साथ Serverless Applications

मुख्य निष्कर्ष

  • विश्वसनीयता retries, routing और observability से आती है.
  • Synchronous errors कॉलर तक पहुँचते हैं.
  • Asynchronous errors को retries के साथ DLQs या destinations चाहिए.
  • इससे विफलताएँ दिखती रहती हैं.

रिलायबिलिटी फ़ॉर्मूला डायग्राम

AWS Lambda के साथ Serverless Applications

अभ्यास करते हैं!

AWS Lambda के साथ Serverless Applications

Preparing Video For Download...