परिचय: Serverless और AWS Lambda क्या है?
\n\nServerless (सर्वरलेस कंप्यूटिंग) एक क्लाउड कंप्यूटिंग मॉडल है जिसमें डेवलपर को सर्वर इंफ्रास्ट्रक्चर मैनेज करने की ज़रूरत नहीं होती। आप बस कोड लिखते हैं, उसे क्लाउड पर अपलोड करते हैं, और प्रोवाइडर (AWS, Google Cloud, Azure) इवेंट के जवाब में उसे ऑटोमैटिकली रन करता है, ज़रूरत के हिसाब से रिसोर्सेज को स्केल करता है। आप केवल कोड के एक्चुअल रन टाइम (और रिक्वेस्ट की संख्या) के लिए पैसे देते हैं।
\n\nAWS Lambda Amazon Web Services का सबसे लोकप्रिय serverless सर्विस है। यह आपको JavaScript (Node.js) सहित कई भाषाओं में कोड रन करने देता है, बिना सर्वर अलग से सेटअप या मेंटेन किए। Lambda HTTP रिक्वेस्ट (API Gateway के ज़रिए), बैकग्राउंड टास्क, S3 से फाइल प्रोसेसिंग, DynamoDB डेटाबेस में बदलाव पर रिएक्ट करने और कई अन्य स्थितियों के लिए एकदम सही है।
\n\nइस आर्टिकल में हम AWS Lambda को JavaScript में शुरू से अंत तक समझेंगे: पहला फंक्शन बनाने से लेकर डिप्लॉय, मॉनिटरिंग और ऑप्टिमाइज़ेशन तक।
\n\nमुख्य भाग: Node.js पर Lambda फंक्शन बनाना और मैनेज करना
\n\n1. पहला Lambda फंक्शन बनाना
\n\nAWS Lambda कंसोल में जाएं और "Create function" पर क्लिक करें। "From scratch" विकल्प चुनें। एक नाम दें (जैसे, my-first-lambda) और रनटाइम एनवायरनमेंट के रूप में Node.js 20.x (या नवीनतम स्थिर वर्जन) चुनें।
Node.js में फंक्शन की बेसिक संरचना इस प्रकार है:
\n\nexports.handler = async (event, context) => {\n // event - वह डेटा जो फंक्शन को भेजा जाता है (जैसे, HTTP रिक्वेस्ट)\n // context - रनटाइम एनवायरनमेंट की जानकारी (जैसे, रिक्वेस्ट ID)\n\n console.log('इवेंट प्राप्त हुआ:', JSON.stringify(event, null, 2));\n\n // आपकी बिज़नेस लॉजिक\n const response = {\n statusCode: 200,\n body: JSON.stringify({\n message: 'Lambda से नमस्ते!',\n input: event\n }),\n };\n\n return response; // AWS Lambda वैल्यू लौटाने की उम्मीद करता है\n};\n\n\nइस सरल उदाहरण में फंक्शन एक इवेंट लेता है और JSON रिस्पॉन्स लौटाता है। अगर फंक्शन API Gateway के ज़रिए कॉल किया जाता है, तो event में HTTP मेथड, हेडर, रिक्वेस्ट बॉडी आदि होंगे।
महत्वपूर्ण: एसिंक्रोनस ऑपरेशन (डेटाबेस क्वेरी, API कॉल) के लिए हमेशा async/await का उपयोग करें। अगर फंक्शन एसिंक्रोनस नहीं है, तो उसे Promise लौटाना चाहिए या callback का उपयोग करना चाहिए।
2. ट्रिगर और इंटीग्रेशन
\n\nLambda की असली ताकत ट्रिगर से आती है — AWS के दूसरे सर्विसेज से आने वाले इवेंट जो आपके फंक्शन को शुरू करते हैं। आइए JavaScript पर तीन सबसे लोकप्रिय विकल्प देखें।
\n\n2.1. API Gateway के ज़रिए HTTP रिक्वेस्ट
\nREST API बनाने का यह सबसे आम तरीका है। आप Lambda में API Gateway ट्रिगर जोड़ते हैं। इस स्थिति में event में HTTP रिक्वेस्ट की संरचना होगी। हैंडलिंग का उदाहरण:
exports.handler = async (event) => {\n const httpMethod = event.httpMethod;\n const path = event.path;\n const queryParams = event.queryStringParameters || {};\n const body = event.body ? JSON.parse(event.body) : {};\n\n console.log(`मेथड: ${httpMethod}, पथ: ${path}`);\n\n if (httpMethod === 'GET' && path === '/hello') {\n return {\n statusCode: 200,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ message: `नमस्ते, ${queryParams.name || 'दुनिया'}!` })\n };\n }\n\n return {\n statusCode: 404,\n body: JSON.stringify({ error: 'Not Found' })\n };\n};\n\n\n2.2. S3 से फाइल प्रोसेसिंग
\nLambda S3 बकेट में फाइल अपलोड या डिलीट होने पर ऑटोमैटिकली ट्रिगर हो सकता है। यह इमेज थंबनेल बनाने, वीडियो कन्वर्ट करने या डेटा इंडेक्स करने के लिए एकदम सही है।
\n\nconst AWS = require('aws-sdk');\nconst s3 = new AWS.S3();\n\nexports.handler = async (e