प्रोडक्शन के लिए AWS Lambda कॉन्फ़िगर करना

AWS पर एप्लिकेशन डिप्लॉय करना

Dunieski Otano

Amazon Web Services Solutions Architect

टेस्ट में काम किया

  • फंक्शन ने हर टेस्ट पास किया
  • प्रोडक्शन में timeout और throttling हुआ
  • कोड ठीक था; कॉन्फ़िगरेशन नहीं था

एक सर्वरलेस फंक्शन जिसने टेस्टिंग पास की लेकिन प्रोडक्शन में जूझ रहा है, मेमोरी और timeout डायल ट्यून किए जा रहे हैं

AWS पर एप्लिकेशन डिप्लॉय करना

प्रोडक्शन में अहम Lambda कॉन्फ़िगरेशन

केंद्रीय Lambda लोगो, चार प्रोडक्शन कॉन्फ़िगरेशन बॉक्स: Memory (CPU स्केलिंग डायल), Timeout (घड़ी), Ephemeral Storage, और Concurrency (पैरलल फंक्शन इंस्टेंसेज़)

  • Memory: CPU और नेटवर्क भी स्केल होते हैं
  • Timeout: अधिकतम सेकंड, उसके बाद फंक्शन खत्म
  • Ephemeral storage: /tmp में अस्थायी स्पेस
  • Concurrency: एक साथ कितने रन करें
AWS पर एप्लिकेशन डिप्लॉय करना

मेमोरी साइजिंग और CPU लिंक

  • अधिक मेमोरी = अनुपातिक रूप से अधिक CPU
  • CPU-bound फंक्शन ऊँची मेमोरी पर तेज़ चल सकता है
  • तेज़ duration से कम लागत हो सकती है
  • अंदाज़े से नहीं, टेस्ट करके right-size करें

मेमोरी बनाम लागत कर्व: मेमोरी बढ़ने पर duration तेज़ी से गिरता है फिर समतल, कुल लागत U-आकार, बीच में सबसे सस्ता बिंदु हाइलाइटेड

AWS पर एप्लिकेशन डिप्लॉय करना

Concurrency: reserved बनाम provisioned


Reserved concurrency

  • अधिकतम समकालिक executions को सीमित करता है
  • डाउनस्ट्रीम सिस्टम और अन्य फंक्शनों को सुरक्षित रखता है

Provisioned concurrency

  • इंस्टेंसेज़ को pre-warm करता है, cold start नहीं होता
  • कम latency वाले, user-facing फंक्शनों के लिए
AWS पर एप्लिकेशन डिप्लॉय करना

कॉन्फ़िगरेशन और shared कोड की पैकेजिंग

  • Environment variables: प्रत्येक environment की कॉन्फ़िगरेशन
  • Layers: कोड और dependencies को फंक्शनों में साझा करें
  • Extensions: टूल्स के लिए फंक्शन के साथ-साथ चलें
  • कॉन्फ़िगरेशन को deployment पैकेज से बाहर रखें

Lambda पैकेजिंग विकल्प: बाहरी कॉन्फ़िग के लिए environment variables, कॉमन लाइब्रेरी साझा करने के लिए layers, और मॉनिटरिंग/सीक्रेट्स के लिए हैंडलर के साथ चलने वाले extensions

AWS पर एप्लिकेशन डिप्लॉय करना

Lambda को VPC से जोड़ना

Lambda एक private VPC से जुड़ा है: private subnets में ENIs, outbound access नियंत्रित करने वाला security group, और internet के लिए NAT gateway

  • आंतरिक resources के लिए Lambda को private subnets से जोड़ें
  • Lambda आपकी VPC में ENIs बनाता है
  • Security groups इसकी पहुँच नियंत्रित करते हैं
  • बाहरी पहुँच के लिए NAT या VPC endpoint चाहिए
AWS पर एप्लिकेशन डिप्लॉय करना

Destinations और DLQs से विफलताएँ संभालना

  • Async invokes असफल होने पर अपने-आप retry करते हैं
  • Lambda Destinations: onSuccess/onFailure के अनुसार route करें
  • Dead-letter queue: जो events कभी सफल नहीं होते उन्हें कैप्चर करें
  • असफल event कभी चुपचाप न गिराएँ

Lambda async विफलता हैंडलिंग: retry लूप, Lambda Destinations की onSuccess और onFailure शाखाएँ, और सभी retries के बाद events को लेने वाली dead-letter queue

AWS पर एप्लिकेशन डिप्लॉय करना

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

AWS पर एप्लिकेशन डिप्लॉय करना

Preparing Video For Download...