Java पर AWS Lambda के साथ सर्वरलेस आर्किटेक्चर का परिचय
\nसर्वरलेस कंप्यूटिंग आधुनिक क्लाउड डेवलपमेंट में सबसे अधिक मांग वाले प्रतिमानों में से एक है। AWS Lambda आपको सर्वर प्रबंधन के बिना कोड चलाने की अनुमति देता है, लोड के अनुसार एप्लिकेशन को स्वचालित रूप से स्केल करता है। इस लेख में, हम विस्तार से जानेंगे कि AWS Lambda का उपयोग करके Java पर सर्वरलेस फ़ंक्शन कैसे बनाएं - पर्यावरण सेटअप से लेकर प्रोडक्शन में डिप्लॉय तक।
\nJava एंटरप्राइज़ डेवलपमेंट के लिए सबसे लोकप्रिय भाषाओं में से एक बना हुआ है, और AWS Lambda Java के लिए उत्कृष्ट समर्थन प्रदान करता है (Java 17 तक)। हम प्रमुख अवधारणाओं पर चर्चा करेंगे, कई कार्यशील उदाहरण लिखेंगे, और कोल्ड स्टार्ट और प्रदर्शन को अनुकूलित करने के लिए best practices पर चर्चा करेंगे।
\n\nJava डेवलपर्स के लिए AWS Lambda की मूल बातें
\n\nAWS Lambda क्या है?
\nAWS Lambda एक कंप्यूटिंग सेवा है जो आपके कोड को ईवेंट के जवाब में चलाती है और कंप्यूटिंग संसाधनों को स्वचालित रूप से प्रबंधित करती है। आप केवल उपभोग किए गए निष्पादन समय और अनुरोधों की संख्या के लिए भुगतान करते हैं।
\nप्रमुख विशेषताएं:
\n- \n
- ईवेंट-संचालित आर्किटेक्चर — फ़ंक्शन किसी ईवेंट (HTTP अनुरोध, S3 में फ़ाइल अपलोड, DynamoDB में परिवर्तन आदि) के घटित होने पर चलता है \n
- स्वचालित स्केलिंग — Lambda अनुरोधों को संसाधित करने के लिए आवश्यकतानुसार कई इंस्टेंस बनाता है \n
- निष्पादन समय सीमा — अधिकतम 15 मिनट (900 सेकंड) \n
- Java 8, 11, 17 के लिए समर्थन — किसी भी लाइब्रेरी का उपयोग करने की क्षमता के साथ \n
Java पर Lambda फ़ंक्शन की संरचना
\nJava पर प्रत्येक Lambda फ़ंक्शन को RequestHandler या RequestStreamHandler इंटरफ़ेस को लागू करना होगा। आइए एक बुनियादी उदाहरण देखें:
import com.amazonaws.services.lambda.runtime.Context;\nimport com.amazonaws.services.lambda.runtime.RequestHandler;\nimport java.util.Map;\n\npublic class HelloHandler implements RequestHandler<Map<String, String>, String> {\n\n @Override\n public String handleRequest(Map<String, String> input, Context context) {\n String name = input.getOrDefault("name", "World");\n String response = String.format("Hello, %s! Your request ID: %s", \n name, context.getAwsRequestId());\n \n context.getLogger().log("Processed request for: " + name);\n return response;\n }\n}\n\nआइए प्रमुख तत्वों को समझें:
\n- \n
- RequestHandler<I, O> — जेनेरिक इंटरफ़ेस, जहाँ I इनपुट डेटा का प्रकार है, O आउटपुट डेटा का प्रकार है \n
- Context — ऑब्जेक्ट जो निष्पादन पर्यावरण (request ID, फ़ंक्शन नाम, लॉगर आदि) के बारे में जानकारी प्रदान करता है \n
- handleRequest — एकमात्र विधि जिसे लागू करने की आवश्यकता है \n
Java पर AWS Lambda के लिए प्रोजेक्ट बनाना और कॉन्फ़िगर करना
\n\nचरण 1: Maven प्रोजेक्ट सेटअप करना
\nJava पर Lambda फ़ंक्शन विकसित करने के लिए Maven का उपयोग करना सुविधाजनक है। निम्नलिखित सामग्री के साथ pom.xml बनाएं:
<project xmlns="http://maven.apache.org/POM/4.0.0"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \n http://maven.apache.org/xsd/maven-4.0.0.xsd">\n <modelVersion>4.0.0</modelVersion>\n <groupId>com.pythonlib</groupId>\n <artifactId>lambda-demo</artifactId>\n <version>1.0.0</version>\n <packaging>jar</packaging>\n\n <properties>\n <maven.compiler.source>17</maven.compiler.source>\n <maven.compiler.target>17</maven.compiler.target>\n </properties>\n\n <dependencies>\n <dependency>\n <groupId>com.amazonaws</groupId>\n <artifactId>aws-lambda-ja