मुख्य सामग्री पर जाएँ

AWS Lambda से शुरुआत: चरण-दर-चरण ट्यूटोरियल

AWS Lambda की बुनियादी बातें सीखें, अपनी पहली फ़ंक्शन सेट अप करें, और इसे सर्वरलेस परिनियोजन के लिए प्रमुख AWS सेवाओं के साथ एकीकृत करना जानें।
· 12 मि॰ पढ़ें

AI के साथ खोजें

AWS Lambda एक शक्तिशाली सर्वरलेस कम्प्यूट सेवा है जो आपको बिना इन्फ्रास्ट्रक्चर प्रबंधन के कोड चलाने देती है, ताकि आप सर्वर प्रोविजनिंग या मेंटेनेंस की चिंता किए बिना केवल कोड लिखने पर ध्यान केंद्रित कर सकें।

इस ट्यूटोरियल में, हम AWS Lambda का अन्वेषण करेंगे—पहला फ़ंक्शन सेट अप करने से लेकर अन्य AWS सेवाओं के साथ एकीकरण तक। चाहे आप डेटा स्ट्रीम प्रोसेस कर रहे हों या API बना रहे हों, यह गाइड आपको AWS Lambda के साथ सर्वरलेस डिप्लॉयमेंट शुरू करने में मदद करेगा।

AWS Lambda क्या है?

AWS Lambda, Amazon Web Services (AWS) द्वारा प्रदत्त सर्वरलेस कम्प्यूटिंग प्लेटफ़ॉर्म है जो डेवलपर्स को सर्वर प्रोविजनिंग या प्रबंधन के बिना कोड चलाने की सुविधा देता है। AWS Lambda यह काम आवश्यकतानुसार आपके फ़ंक्शंस को निष्पादित करने के लिए संसाधनों का डायनैमिक रूप से आबंटन करके करता है, और आपको पूर्व-आवंटित सर्वर क्षमता के बजाय वास्तविक उपयोग के आधार पर शुल्क लेता है।

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

AWS Lambda इवेंट-ड्रिवन है, यानी यह अन्य AWS सेवाओं से आने वाली विशिष्ट घटनाओं से ट्रिगर होता है, जिससे यह उत्तरदायी, स्केलेबल और लागत-कुशल समाधानों के लिए आदर्श बनता है।

पारंपरिक डिप्लॉयमेंट विधियाँ सर्वर सेट अप और प्रबंधन की मांग करती हैं, जिसमें स्केलिंग, अपडेटिंग और पैचिंग शामिल होते हैं। ये कार्य अस्थिर वर्कलोड्स के लिए समय लेने वाले, महंगे और कम प्रभावी हो सकते हैं। इसके विपरीत, सर्वरलेस डिप्लॉयमेंट इन ओवरहेड्स को समाप्त कर देता है और बॉक्स से बाहर ऑटोमैटिक स्केलिंग और उच्च उपलब्धता प्रदान करता है।

AWS Lambda की विशेषताएँ

  • इवेंट-ड्रिवन आर्किटेक्चर: AWS Lambda फ़ंक्शन डेटा में बदलाव, HTTP अनुरोध, या AWS संसाधनों के अपडेट जैसे इवेंट्स के प्रत्युत्तर में इनवोक होते हैं। 
  • मल्टिपल रनटाइम सपोर्ट: Lambda कई रनटाइम्स सपोर्ट करता है, जैसे Python, Node.js, Java, Go, Ruby, और .NET। डेवलपर्स AWS Lambda Runtime API का उपयोग करके अपना रनटाइम भी ला सकते हैं, जिससे यह विविध उपयोग मामलों के लिए बहुमुखी प्लेटफ़ॉर्म बनता है।
  • स्वचालित स्केलेबिलिटी: AWS Lambda आपकी एप्लिकेशन को डिमांड के आधार पर स्वतः स्केल करता है। चाहे एक इवेंट प्रोसेस करना हो या एक साथ हज़ारों, Lambda कम्प्यूट संसाधनों को डायनैमिक रूप से समायोजित करता है।
  • पे-ऐज़-यू-गो प्राइसिंग: लागत आपके अनुरोधों की संख्या और फ़ंक्शंस के एक्ज़ीक्यूशन समय के आधार पर निर्धारित होती है। इससे अग्रिम निवेश की ज़रूरत समाप्त होती है और आप केवल उतना ही भुगतान करते हैं जितना उपयोग करते हैं।
  • इंटीग्रेटेड सिक्योरिटी: Lambda, AWS Identity and Access Management (IAM) के साथ काम करता है, जिससे आपके फ़ंक्शंस और अन्य AWS सेवाओं के बीच सूक्ष्म ऐक्सेस नियंत्रण और सुरक्षित इंटरैक्शन सुनिश्चित होते हैं।

Lambda के सामान्य उपयोग

  • डेटा स्ट्रीम प्रोसेसिंग: AWS Lambda, Amazon Kinesis के साथ इंटेग्रेशन कर रीयल-टाइम में स्ट्रीमिंग डेटा को प्रोसेस और विश्लेषित कर सकता है। उदाहरण के लिए, आप IoT डिवाइसेज़ की निगरानी कर सकते हैं या लॉग फाइलों को डायनैमिक रूप से प्रोसेस कर सकते हैं।
  • RESTful API बनाना: Lambda फ़ंक्शंस को AWS API Gateway के साथ जोड़कर वेब और मोबाइल एप्लिकेशन के लिए स्केलेबल API बनाए जा सकते हैं। यह सेटअप आमतौर पर यूज़र ऑथेंटिकेशन, डेटाबेस क्वेरी, या डायनैमिक कंटेंट जेनरेट करने के लिए उपयोग होता है।
  • वर्कफ़्लो ऑटोमेशन: सेवाओं जैसे S3, DynamoDB, या CloudWatch से आने वाले इवेंट्स के आधार पर Lambda फ़ंक्शंस ट्रिगर करके जटिल वर्कफ़्लो को ऑटोमेट करें। उदाहरण के लिए, आप S3 पर अपलोड की गई इमेज को रीसाइज़ कर सकते हैं या पुराने डेटाबेस रिकॉर्ड्स को स्वतः आर्काइव कर सकते हैं।
  • डेटा पाइपलाइनों में इवेंट हैंडलिंग: आप Lambda का उपयोग रीयल-टाइम डेटा इवेंट्स को संभालने के लिए कर सकते हैं, जैसे S3 बकेट में नए अपलोड्स को प्रोसेस करना, स्टोरेज से पहले डेटा को ट्रांसफॉर्म करना, या बाहरी API कॉल्स के साथ डेटा स्ट्रीम्स को समृद्ध करना।
  • सर्वरलेस बैकएंड प्रोसेसिंग: Lambda का उपयोग अक्सर बैकएंड कार्यों जैसे डेटा वैलिडेशन, ETL (Extract, Transform, Load) प्रक्रियाएँ, या Amazon SNS या SES के माध्यम से नोटिफिकेशंस भेजने के लिए किया जाता है।

AWS Lambda कैसे काम करता है?

AWS Lambda इवेंट-ड्रिवन मॉडल पर काम करता है, यानी यह विशिष्ट ट्रिगर्स या इवेंट्स के प्रत्युत्तर में कोड निष्पादित करता है। Lambda की कार्यक्षमता की कुंजी अन्य AWS सेवाओं के साथ इसका एकीकरण और ऑन-डिमांड फ़ंक्शंस चलाने की क्षमता है। आइए चरण-दर-चरण समझें कि AWS Lambda कैसे काम करता है:

AWS Lambda सेवाएँ कैसे काम करती हैं इसका स्क्रीनशॉट। AWS वेबसाइट का आधिकारिक उदाहरण।

Lambda और अन्य मुख्य AWS सेवाओं का उपयोग करती एक आर्किटेक्चर डायग्राम का उदाहरण। इमेज स्रोत: AWS.

1. AWS Lambda फ़ंक्शंस को ट्रिगर करना

AWS Lambda फ़ंक्शंस विभिन्न AWS सेवाओं या बाहरी सिस्टम्स से आने वाले इवेंट्स द्वारा आरंभ किए जाते हैं। सामान्य इवेंट सोर्सेज में शामिल हैं:

  • API Gateway: जब कोई उपयोगकर्ता आपके API Gateway एंडपॉइंट पर HTTP अनुरोध (जैसे GET या POST) भेजता है, तो Lambda अनुरोध को प्रोसेस करने के लिए फ़ंक्शन चला सकता है—उदाहरण के लिए, डेटाबेस में उपयोगकर्ता बनाने हेतु RESTful API एंडपॉइंट।
  • S3 इवेंट्स: Lambda फ़ंक्शंस S3 बकेट में किसी ऑब्जेक्ट के अपलोड, डिलीट या संशोधन जैसी क्रियाओं पर प्रतिक्रिया दे सकते हैं। उदाहरण के लिए, S3 में इमेज अपलोड होने के बाद इमेज का आकार बदलना या फाइल फ़ॉर्मैट्स कन्वर्ट करना।
  • DynamoDB स्ट्रीम्स: DynamoDB टेबल्स में किए गए किसी भी बदलाव—इन्सर्ट, अपडेट, या डिलीट—से Lambda फ़ंक्शन ट्रिगर हो सकता है। उदाहरण के लिए, DynamoDB टेबल में नई पंक्तियाँ जुड़ने पर एनालिटिक्स पाइपलाइन ट्रिगर करना।
  • कस्टम एप्लिकेशन: आप SDKs, CLI, या HTTP अनुरोधों का उपयोग कर Lambda फ़ंक्शंस को सीधे इनवोक कर सकते हैं, जिससे बाहरी सिस्टम्स के साथ एकीकरण संभव होता है।

2. एक्ज़ीक्यूशन एनवायरनमेंट

जब कोई इवेंट किसी Lambda फ़ंक्शन को ट्रिगर करता है, तो AWS स्वतः कोड चलाने के लिए एक एक्ज़ीक्यूशन एनवायरनमेंट बनाता है। इस एनवायरनमेंट में शामिल होते हैं:

  • आपका फ़ंक्शन कोड: आपके विशिष्ट कार्य के लिए लिखा गया कोड।
  • आवंटित संसाधन: CPU और मेमोरी (कॉन्फ़िगरेबल) फ़ंक्शन की ज़रूरत के अनुसार डायनैमिक रूप से असाइन होते हैं।
  • डिपेंडेंसीज़: डिप्लॉयमेंट के दौरान निर्दिष्ट कोई भी बाहरी लाइब्रेरी या पैकेज शामिल होते हैं।

3. कंकरेन्सी और स्केलिंग

AWS Lambda स्वचालित स्केलिंग सपोर्ट करता है, जो आपके फ़ंक्शन की कई इंस्टेंस समानांतर में चलाकर होता है। यह बिना किसी अतिरिक्त कॉन्फ़िगरेशन के पारदर्शी रूप से स्केल करता है। कंकरेन्सी इस प्रकार काम करती है:

  • यदि आपके फ़ंक्शन को एक साथ 100 इवेंट्स प्रोसेस करने हैं, तो Lambda आवश्यकतानुसार (कंकरेन्सी लिमिट तक) उतने एक्ज़ीक्यूशन एनवायरनमेंट बना देगा।

4. अन्य AWS सेवाओं के साथ इंटीग्रेशन

मजबूत, एंड-टू-एंड समाधान बनाने के लिए AWS Lambda, AWS सेवाओं के साथ गहराई से इंटीग्रेट होता है:

  • डेटाबेस इंटरैक्शन: Lambda, निष्पादन के दौरान DynamoDB या RDS में डेटा पढ़/लिख सकता है।
  • मैसेजिंग सेवाएँ: Lambda, SNS के जरिए नोटिफिकेशन ट्रिगर कर सकता है या डाउनस्ट्रीम प्रोसेसिंग के लिए SQS क्यूज़ में संदेश भेज सकता है।
  • मॉनिटरिंग और लॉगिंग: CloudWatch, Lambda फ़ंक्शंस के सभी लॉग्स, मेट्रिक्स और त्रुटि विवरण कैप्चर करता है, जिससे आप परफॉर्मेंस की निगरानी और ट्रबलशूटिंग कर सकते हैं।

अब, अपनी पहली Lambda फ़ंक्शन सेट अप करना शुरू करते हैं!

AWS Lambda सेट अप करना

पूर्वापेक्षाएँ

  • AWS खाता: सुनिश्चित करें कि आपके पास सक्रिय AWS अकाउंट है। यहाँ साइन अप करें।
  • IAM यूज़र सेटअप: AWS Lambda के लिए परमिशन के साथ एक IAM यूज़र बनाएँ। निर्देशों के लिए IAM गाइड देखें।

डेवलपमेंट एनवायरनमेंट सेट अप करना

  • AWS CLI इंस्टॉल करें: AWS CLI डाउनलोड और इंस्टॉल करें। इसे अपने IAM क्रेडेंशियल्स से कॉन्फ़िगर करें।
  • Python या Node.js सेट अप करें: Python या Node.js अपने पसंदीदा रनटाइम के अनुसार इंस्टॉल करें। AWS Lambda कई रनटाइम्स सपोर्ट करता है। हम इस ट्यूटोरियल में Python रनटाइम का उपयोग करेंगे।

चरण 1: AWS Lambda कंसोल तक पहुँचें

  1. लॉग इन करें AWS मैनेजमेंट कंसोल में।
  2. Lambda सेवा पर जाएँ।

AWS कंसोल में नेविगेशन डैशबोर्ड का स्क्रीनशॉट

AWS कंसोल में नेविगेशन डैशबोर्ड।

नेविगेशन मेनू में Lambda पर क्लिक करें और डैशबोर्ड देखें:

AWS कंसोल में AWS Lambda डैशबोर्ड का स्क्रीनशॉट

AWS कंसोल में AWS Lambda डैशबोर्ड।

चरण 2: नया फ़ंक्शन बनाएँ

  1. क्लिक करें Create Function।
  2. “Author from Scratch” चुनें।
  3. अपने फ़ंक्शन का नाम दें।
  4. रनटाइम चुनें (जैसे, Python 3.11)।
  5. Create Function बटन पर क्लिक करें।

नया AWS Lambda फ़ंक्शन बनाने की स्क्रीन का स्क्रीनशॉट

नया AWS Lambda फ़ंक्शन बनाएँ।

कुछ सेकंड लगेंगे। फ़ंक्शन बनते ही शीर्ष पर सफल होने का संदेश दिखाई देगा।

चरण 3: अपना फ़ंक्शन कोड लिखें

साधारण कोड संपादन के लिए AWS Lambda ब्राउज़र IDE का स्क्रीनशॉट

सरल कोड संपादन के लिए AWS Lambda ब्राउज़र IDE।

चरण 4: अपनी Lambda फ़ंक्शन का परीक्षण करें

इस समय, यह फ़ंक्शन केवल यह स्ट्रिंग लौटाता है “Hello from Lambda!”। 

न कोई लॉजिक, न डिपेंडेंसी—कुछ भी नहीं। 

हमारे पास lambda_function.py नाम की एक Python स्क्रिप्ट है जिसमें lambda_handler() नाम का फ़ंक्शन है जो एक स्ट्रिंग लौटाता है। 

अब हम बस Test बटन पर क्लिक करके इसका परीक्षण कर सकते हैं।

ब्राउज़र में अपनी AWS Lambda फ़ंक्शन का परीक्षण करने की स्क्रीन का स्क्रीनशॉट

ब्राउज़र में अपनी AWS Lambda फ़ंक्शन का परीक्षण करें।

हमारी फ़ंक्शन कोई इनपुट नहीं लेती, इसलिए आप “Event JSON” हटा सकते हैं। एक इवेंट नाम दें और Invoke बटन पर क्लिक करें।

AWS Lambda फ़ंक्शन के सफल परीक्षण की स्क्रीन का स्क्रीनशॉट

AWS Lambda फ़ंक्शन का सफल परीक्षण।

फ़ंक्शन सफलतापूर्वक निष्पादित हुआ और संदेश लौटाया गया।

वाह! हमने अभी AWS Lambda का उपयोग करके एक सर्वरलेस फ़ंक्शन डिप्लॉय किया। यह अभी बहुत कुछ नहीं करता, लेकिन यह चल रहा है। हर बार जब यह फ़ंक्शन इनवोक होगा, यह एक सरल स्ट्रिंग लौटाएगा।

इवेंट्स के साथ Lambda को ट्रिगर करना

जैसा कि बताया गया, AWS Lambda आर्किटेक्चर आपको विभिन्न AWS सेवाओं से आने वाले विशिष्ट इवेंट्स के प्रत्युत्तर में फ़ंक्शंस ट्रिगर करने देता है, जिससे वर्कफ़्लोज़ ऑटोमेट करने और सिस्टम्स को इंटीग्रेट करने का बहुमुखी तरीका मिलता है। 

S3 बकेट में फ़ाइल अपलोड्स, DynamoDB टेबल में अपडेट्स, या API Gateway के माध्यम से API कॉल्स जैसे इवेंट्स Lambda फ़ंक्शंस को इनवोक कर सकते हैं, जिससे रीयल-टाइम प्रोसेसिंग और स्केलेबल निष्पादन संभव होता है।

1. S3 ट्रिगर सेट अप करना

  1. S3 कंसोल पर जाएँ।
  2. S3 बकेट चुनें।
  3. Properties के अंतर्गत, ऑब्जेक्ट बनाए जाने पर अपनी Lambda फ़ंक्शन को ट्रिगर करने हेतु एक इवेंट नोटिफिकेशन जोड़ें।AWS S3 बकेट में इवेंट नोटिफिकेशन बनाने की स्क्रीन का स्क्रीनशॉटAWS S3 बकेट में इवेंट नोटिफिकेशन बनाएँ।S3 में ट्रिगर करने के लिए Lambda फ़ंक्शन चुनने का स्क्रीनशॉटS3 में ट्रिगर के लिए Lambda फ़ंक्शन चुनें।

उदाहरण उपयोग के मामले:

    • S3 पर अपलोड की गई इमेज को स्वतः रीसाइज़ करना।
    • वीडियो को स्ट्रीमिंग के लिए कई रेज़ोल्यूशंस या फ़ॉर्मैट्स में कन्वर्ट करना।
    • अपलोड के समय फाइल फ़ॉर्मैट, आकार या मेटाडेटा की जाँच करना।
    • AI का उपयोग कर अपलोडेड डॉक्युमेंट्स से टेक्स्ट निकालना (जैसे, Amazon Textract के माध्यम से)।

2. API Gateway इंटीग्रेशन

  1. API Gateway सेवा पर जाएँ।

AWS कंसोल में API Gateway सेवा डैशबोर्ड का स्क्रीनशॉट

AWS कंसोल में API Gateway सेवा डैशबोर्ड।

  1. एक नया REST API बनाएँ।

API Gateway के माध्यम से नया REST API बनाने का स्क्रीनशॉट

API Gateway के माध्यम से नया REST API बनाएँ।

  1. एक मेथड (जैसे, POST) कॉन्फ़िगर करें जो आपकी Lambda फ़ंक्शन को ट्रिगर करे।

उदाहरण उपयोग के मामले:

    • रीयल-टाइम प्रतिक्रियाओं के लिए सर्वरलेस API बनाएँ।
    • Lambda फ़ंक्शन ट्रिगर करके उपयोगकर्ता डेटा बनाएं और डेटाबेस में स्टोर करें।
    • POST अनुरोधों को हैंडल करके कस्टमर ऑर्डर्स को रीयल-टाइम में प्रोसेस और वैलिडेट करें।
    • Lambda फ़ंक्शन ट्रिगर करके डेटाबेस या API से डेटा क्वेरी करें और वापस करें।

AWS Lambda का डिप्लॉयमेंट और मॉनिटरिंग

AWS Lambda फ़ंक्शंस को डिप्लॉय करना सीधा है और आपकी ज़रूरतों के अनुसार विभिन्न तरीकों से किया जा सकता है, जैसे मैनुअल डिप्लॉयमेंट के लिए AWS मैनेजमेंट कंसोल या स्वचालन के लिए AWS CLI।

1. AWS कंसोल के माध्यम से मैनुअल डिप्लॉयमेंट

AWS मैनेजमेंट कंसोल Lambda फ़ंक्शंस को डिप्लॉय करने के लिए एक सहज वेब इंटरफ़ेस देता है। यह तरीका छोटे प्रोजेक्ट्स या त्वरित बदलावों के लिए आदर्श है। यहाँ कंसोल का उपयोग करके Lambda फ़ंक्शन डिप्लॉय करने के चरण दिए गए हैं:

  1. फ़ंक्शन बनाएँ या एडिट करें:
    • AWS मैनेजमेंट कंसोल में लॉग इन करें।
    • AWS Lambda पर नेविगेट करें।
    • नया फ़ंक्शन सेट अप करने के लिए Create Function पर क्लिक करें या किसी मौजूदा फ़ंक्शन को अपडेट करने के लिए चुनें।
  2. अपना कोड अपलोड करें:
    • Upload from चुनें और .zip फाइल या कंटेनर इमेज का चयन करें।
    • छोटे स्तर के विकास के लिए आप इंटीग्रेटेड कोड एडिटर में सीधे फ़ंक्शन कोड एडिट कर सकते हैं।
  3. फ़ंक्शन कॉन्फ़िगर करें:
    • अपने उपयोग मामले के आधार पर एनवायरनमेंट वेरिएबल्स, मेमोरी आबंटन और टाइमआउट लिमिट्स निर्धारित करें।
    • अन्य AWS सेवाओं के साथ इंटरैक्शन की अनुमति देने के लिए AWS IAM रोल्स का उपयोग कर आवश्यक परमिशन जोड़ें।
  4. बदलाव डिप्लॉय करें:
    • बदलाव सहेजने और सक्रिय करने के लिए Deploy पर क्लिक करें।
    • मैन्युअल रूप से फ़ंक्शन इनवोक करने और अपेक्षित रूप से काम करने की पुष्टि करने के लिए Test फीचर का उपयोग करें।

2. AWS CLI का उपयोग कर स्वचालित डिप्लॉयमेंट 

ऑटोमेशन या बारंबार अपडेट्स के लिए AWS CLI, Lambda फ़ंक्शंस को डिप्लॉय और अपडेट करने का प्रभावी तरीका है। यह स्थिरता सुनिश्चित करता है और विशेषकर बड़े प्रोजेक्ट्स या CI/CD पाइपलाइनों में मैनुअल त्रुटियों को कम करता है।

चरण 1 - डिप्लॉयमेंट पैकेज तैयार करें

अपने कोड और डिपेंडेंसीज़ को एक .zip फाइल में पैक करें। उदाहरण:

zip -r my-deployment-package.zip .

चरण 2 - CLI का उपयोग कर फ़ंक्शन डिप्लॉय करें

नया कोड AWS Lambda पर अपलोड करने के लिए update-function-code कमांड का उपयोग करें:

aws lambda update-function-code \
    --function-name MyFunction \
    --zip-file fileb://my-deployment-package.zip

चरण 3 - डिप्लॉयमेंट जाँचें

डिप्लॉयमेंट के बाद, फ़ंक्शन की स्थिति की पुष्टि करने के लिए यह कमांड चलाएँ:

aws lambda get-function --function-name MyFunction

यह कमांड फ़ंक्शन का कॉन्फ़िगरेशन प्राप्त करती है और डिप्लॉयमेंट की पुष्टि करती है।

CloudWatch के साथ Lambda की मॉनिटरिंग

मॉनिटरिंग यह सुनिश्चित करने के लिए महत्वपूर्ण है कि आपकी Lambda फ़ंक्शंस कुशलतापूर्वक चलें, त्रुटियों को सही ढंग से संभालें, और परफॉर्मेंस अपेक्षाओं को पूरा करें। AWS Lambda, Amazon CloudWatch के साथ इंटेग्रेशन कर मॉनिटरिंग और लॉगिंग क्षमताएँ प्रदान करता है।

Amazon CloudWatch स्वतः आपकी Lambda फ़ंक्शंस के प्रमुख मेट्रिक्स एकत्र और प्रदर्शित करता है। ये मेट्रिक्स फ़ंक्शन के परफॉर्मेंस का विश्लेषण और समस्याओं की ट्रबलशूटिंग में मदद करते हैं।

मॉनिटर करने योग्य मेट्रिक्स:

  1. Invocations: आपके फ़ंक्शन के इनवोक होने की संख्या ट्रैक करता है। ट्रैफिक पैटर्न और उपयोग के रुझान समझने में सहायक।
  2. Errors: फ़ंक्शन निष्पादन के दौरान त्रुटियों की संख्या दिखाता है। विफलता दर पहचानने और समस्याएँ डीबग करने में उपयोगी।
  3. Duration: फ़ंक्शन के निष्पादन में लगा समय मापता है। परफॉर्मेंस अनुकूलन और लागत प्रबंधन के लिए अहम।
  4. Throttles: कंकरेन्सी लिमिट के कारण थ्रॉटल की गई इनवोकेशंस की संख्या दिखाता है।

मेट्रिक्स तक पहुँचना:

  • CloudWatch Metrics Console पर जाएँ।
  • सूची में से Lambda चुनें।
  • विस्तृत मेट्रिक्स देखने के लिए जिस फ़ंक्शन की निगरानी करनी है उसे चुनें।

AWS Lambda के सर्वश्रेष्ठ अभ्यास

अब जब आपने अपना पहला Lambda फ़ंक्शन डिप्लॉय कर लिया है, तो भविष्य के जटिल प्रोजेक्ट्स के लिए कुछ सर्वोत्तम अभ्यास जानना उपयोगी है। इस अनुभाग में, मैं कुछ बातों का ध्यान रखने योग्य सुझाव देता/देती हूँ।

1. फ़ंक्शन के कोल्ड स्टार्ट्स को अनुकूलित करें

कोल्ड स्टार्ट तब होते हैं जब Lambda फ़ंक्शन निष्क्रिय रहने के बाद इनवोक होता है, जिससे AWS द्वारा एक्ज़ीक्यूशन एनवायरनमेंट प्रोविजन करने के कारण थोड़ी लेटेंसी आती है। हालाँकि AWS इस ओवरहेड को न्यूनतम रखता है, आप कोल्ड स्टार्ट समय कम करने के लिए ये कदम उठा सकते हैं:

छोटे डिप्लॉयमेंट पैकेज का उपयोग करें

  • केवल आवश्यक डिपेंडेंसीज़ शामिल करके अपने डिप्लॉयमेंट पैकेज को हल्का रखें।
  • AWS Lambda Layers जैसे टूल का उपयोग करें ताकि सामान्य लाइब्रेरीज़ (जैसे AWS SDK) को अलग से साझा किया जा सके और व्यक्तिगत पैकेजों में शामिल न करना पड़े।
  • जहाँ संभव हो, कोड को कंप्रेस और मिनिफ़ाई करें, विशेषकर JavaScript या Python आधारित फ़ंक्शंस के लिए।

फ़ंक्शन में भारी इनिशियलाइज़ेशन से बचें

रिसोर्स-इंटेंसिव इनिशियलाइज़ेशन (जैसे डेटाबेस कनेक्शन, API क्लायंट्स, या थर्ड-पार्टी लाइब्रेरीज़) को फ़ंक्शन हैंडलर के बाहर रखें। इससे कोड प्रति एनवायरनमेंट केवल एक बार चलेगा और आगे की इनवोकेशंस में पुन: उपयोग होगा।

Provisioned Concurrency का लाभ लें

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

2. फ़ंक्शंस को स्टेटलेस रखें

स्टेटलेसनेस सर्वरलेस आर्किटेक्चर का बुनियादी सिद्धांत है, जिससे आपकी एप्लिकेशन सहज रूप से स्केल होती है:

इन-मेमोरी डेटा पर निर्भरता से बचें

Lambda फ़ंक्शंस अल्पकालिक होते हैं, यानी उनका एक्ज़ीक्यूशन एनवायरनमेंट अस्थायी होता है और इनवोकेशंस के बीच बना रहना आवश्यक नहीं है। इन-मेमोरी वेरिएबल्स पर निर्भर होने के बजाय, स्टेट जानकारी को DynamoDB, S3, या Redis जैसे बाहरी सिस्टम्स में स्टोर करें।

Idempotency सक्षम करें

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

3. एनवायरनमेंट वेरिएबल्स का उपयोग करें

एनवायरनमेंट वेरिएबल्स आपकी Lambda फ़ंक्शंस को कॉन्फ़िगर करने का सुरक्षित और सुविधाजनक तरीका हैं:

संवेदनशील जानकारी स्टोर करें

  • API कीज़, डेटाबेस कनेक्शन स्ट्रिंग्स और अन्य सीक्रेट्स को एनवायरनमेंट वेरिएबल्स के रूप में स्टोर करें। AWS Lambda इन्हें “at rest” एन्क्रिप्ट करता है और निष्पादन के दौरान डिक्रिप्ट करता है।
  • अतिरिक्त सुरक्षा के लिए, AWS Secrets Manager या Systems Manager Parameter Store का उपयोग कर सीक्रेट्स को डायनैमिक रूप से प्रबंधित करें।

कॉन्फ़िगरेशन प्रबंधन सरल करें

लॉग लेवल्स, रीजन सेटिंग्स, या थर्ड-पार्टी सेवा URLs जैसी कॉन्फ़िगरेशन को प्रबंधित करने के लिए एनवायरनमेंट वेरिएबल्स का उपयोग करें। इससे हार्डकोडेड वैल्यूज़ की ज़रूरत समाप्त होती है और आपका फ़ंक्शन विभिन्न एनवायरनमेंट्स (जैसे dev, staging, prod) में अधिक पोर्टेबल बनता है।

निष्कर्ष

इस ट्यूटोरियल में AWS Lambda के साथ शुरुआत करने की गाइड दी गई—इसकी विशेषताओं और उपयोग मामलों को समझने से लेकर फ़ंक्शंस को प्रभावी ढंग से डिप्लॉय और मॉनिटर करने तक। कोल्ड स्टार्ट्स को अनुकूलित करना, फ़ंक्शंस को स्टेटलेस रखना, और एनवायरनमेंट वेरिएबल्स का उपयोग करना जैसे सर्वोत्तम अभ्यास अपनाकर आप मजबूत और रखरखाव योग्य सर्वरलेस एप्लिकेशन बना सकते हैं।

AWS Lambda आधुनिक, इवेंट-ड्रिवन आर्किटेक्चर बनाने का एक तरीका है जो AWS इकोसिस्टम के साथ इंटीग्रेट होता है। यदि आप इसके बारे में और सीखना चाहते हैं, तो मैं अनुशंसा करता/करती हूँ कि DataCamp के AWS कोर्सेज देखें।

Moez Ali

लेखक

Moez Ali

डेटा साइंटिस्ट, PyCaret के संस्थापक और निर्माता

विषय