Kotlin और AWS Lambda के साथ Serverless फंक्शन का परिचय
\n\nServerless आर्किटेक्चर अपनी स्केलेबिलिटी, किफ़ायती और आसान डिप्लॉयमेंट के कारण तेज़ी से लोकप्रिय हो रहा है। AWS Lambda serverless फंक्शन चलाने के लिए एक प्रमुख सेवा है, और हालाँकि इसे अक्सर JavaScript, Python या Java से जोड़ा जाता है, Kotlin भी इस काम के लिए बहुत उपयुक्त है। JVM के साथ पूर्ण संगतता और संक्षिप्त सिंटैक्स के कारण, Kotlin आपको क्लाउड फंक्शन के लिए साफ, सुरक्षित और उच्च-प्रदर्शन वाला कोड लिखने की अनुमति देता है।
\n\nइस लेख में, हम Kotlin में एक साधारण Lambda फंक्शन बनाने से लेकर उसके डिप्लॉय, टेस्टिंग और AWS में मॉनिटरिंग तक का सफर तय करेंगे। आप सीखेंगे कि Gradle के साथ प्रोजेक्ट कैसे सेटअप करें, API Gateway इवेंट को कैसे हैंडल करें, AWS SDK के साथ कैसे काम करें और कोल्ड स्टार्ट को कैसे ऑप्टिमाइज़ करें।
\n\nमूल बातें: Kotlin में पहला Lambda फंक्शन बनाना
\n\nप्रोजेक्ट और डिपेंडेंसी सेटअप
\n\nसबसे पहले, एक नया Gradle प्रोजेक्ट बनाएँ। सुनिश्चित करें कि आपके पास JDK 11+ और Gradle 7+ इंस्टॉल है। build.gradle.kts फ़ाइल में आवश्यक डिपेंडेंसी जोड़ें:
plugins {\n kotlin("jvm") version "1.9.22"\n id("io.github.justinhj.kotlin-lambda") version "0.2.0"\n}\n\ndependencies {\n implementation("com.amazonaws:aws-lambda-java-core:1.2.3")\n implementation("com.amazonaws:aws-lambda-java-events:3.11.4")\n implementation("com.google.code.gson:gson:2.10.1")\n}\n\ntasks.withType {\n archiveFileName.set("lambda-function.zip")\n} \n\nkotlin-lambda प्लगइन बिल्ड और डिप्लॉय को आसान बनाता है, जबकि aws-lambda-java-core और aws-lambda-java-events लाइब्रेरी हैंडलर और इवेंट के लिए इंटरफ़ेस प्रदान करती हैं।
सबसे सरल हैंडलर
\n\nएक HelloHandler क्लास बनाएँ जो RequestHandler इंटरफ़ेस को इम्प्लीमेंट करता है:
import com.amazonaws.services.lambda.runtime.Context\nimport com.amazonaws.services.lambda.runtime.RequestHandler\n\nclass HelloHandler : RequestHandler\n\nयह हैंडलर name फ़ील्ड वाला एक JSON ऑब्जेक्ट लेता है और एक अभिवादन लौटाता है। डिप्लॉय करने के लिए, ./gradlew buildZip कमांड से प्रोजेक्ट बनाएँ और प्राप्त JAR को AWS Lambda कंसोल में अपलोड करें।
उन्नत परिदृश्य: इवेंट और AWS SDK के साथ काम करना
\n\nAPI Gateway इवेंट को हैंडल करना
\n\nअक्सर Lambda का उपयोग REST API के बैकएंड के रूप में किया जाता है। इसके लिए API Gateway इवेंट फ़ॉर्मेट को हैंडल करना होगा। एक ApiGatewayHandler क्लास बनाएँ:
import com.amazonaws.services.lambda.runtime.Context\nimport com.amazonaws.services.lambda.runtime.RequestHandler\nimport com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent\nimport com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent\n\nclass ApiGatewayHandler : RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {\n override fun handleRequest(request: APIGatewayProxyRequestEvent, context: Context): APIGatewayProxyResponseEvent {\n val response = APIGatewayProxyResponseEvent()\n val body = """\n {\n "message": "Kotlin Lambda से नमस्ते!",\n "method": "${request.httpMethod}",\n "path": "${request.path}"\n }\n """.trimIndent()\n response.statusCode = 200\n response.body = body\n response.headers = mapOf("Content-Type" to "application/json")\n return response\n }\n}\n\nअब आपका फंक्शन HTTP अनुरोधों का जवाब दे सकता है, हेडर और स्टेटस कोड भेज सकता है। AWS कंसोल में फंक्शन बनाते समय, API Gateway को ट्रिगर के रूप में चुनें।