Kotlin में Serverless फंक्शन: AWS Lambda पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin और AWS Lambda के साथ Serverless फंक्शन का परिचय

\n\n

Serverless आर्किटेक्चर अपनी स्केलेबिलिटी, किफ़ायती और आसान डिप्लॉयमेंट के कारण तेज़ी से लोकप्रिय हो रहा है। 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 फ़ाइल में आवश्यक डिपेंडेंसी जोड़ें:

\n\n
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\n

kotlin-lambda प्लगइन बिल्ड और डिप्लॉय को आसान बनाता है, जबकि aws-lambda-java-core और aws-lambda-java-events लाइब्रेरी हैंडलर और इवेंट के लिए इंटरफ़ेस प्रदान करती हैं।

\n\n

सबसे सरल हैंडलर

\n\n

एक HelloHandler क्लास बनाएँ जो RequestHandler इंटरफ़ेस को इम्प्लीमेंट करता है:

\n\n
import com.amazonaws.services.lambda.runtime.Context\nimport com.amazonaws.services.lambda.runtime.RequestHandler\n\nclass HelloHandler : RequestHandler {\n    override fun handleRequest(input: Map<String, String>, context: Context): String {\n        val name = input["name"] ?: "World"\n        context.logger.log("$name के लिए अनुरोध प्रोसेस किया जा रहा है")\n        return "नमस्ते, $name! आपका Kotlin फंक्शन काम कर रहा है!"\n    }\n}
\n\n

यह हैंडलर name फ़ील्ड वाला एक JSON ऑब्जेक्ट लेता है और एक अभिवादन लौटाता है। डिप्लॉय करने के लिए, ./gradlew buildZip कमांड से प्रोजेक्ट बनाएँ और प्राप्त JAR को AWS Lambda कंसोल में अपलोड करें।

\n\n

उन्नत परिदृश्य: इवेंट और AWS SDK के साथ काम करना

\n\n

API Gateway इवेंट को हैंडल करना

\n\n

अक्सर Lambda का उपयोग REST API के बैकएंड के रूप में किया जाता है। इसके लिए API Gateway इवेंट फ़ॉर्मेट को हैंडल करना होगा। एक ApiGatewayHandler क्लास बनाएँ:

\n\n
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 को ट्रिगर के रूप में चुनें।

ब्लॉग

पुस्तक अनुशंसाएँ