AWS Lambda के साथ Swift में Serverless फंक्शन का परिचय
\n\nServerless आर्किटेक्चर डेवलपर्स के बीच तेजी से लोकप्रिय हो रहा है, और अब Swift भी इससे अछूता नहीं है। AWS Lambda प्लेटफॉर्म पर Swift के समर्थन के कारण, iOS और macOS डेवलपर्स अपनी मूल भाषा में क्लाउड फंक्शन लिख सकते हैं, Swift इकोसिस्टम की पूरी शक्ति का उपयोग करते हुए। इस लेख में, हम शुरू से एक Serverless फंक्शन बनाने, कॉन्फ़िगर करने और डिप्लॉय करने की पूरी प्रक्रिया समझेंगे।
\n\nServerless फंक्शन आपको सर्वर प्रबंधन के बिना कोड चलाने की अनुमति देते हैं। आप केवल निष्पादन समय के लिए भुगतान करते हैं, और स्केलिंग स्वचालित रूप से होती है। AWS Lambda आधिकारिक runtime इमेज के माध्यम से Swift को सपोर्ट करता है, जो इसे Apple इकोसिस्टम में backend कार्यों के लिए एक उत्कृष्ट विकल्प बनाता है।
\n\nAWS Lambda पर Swift डेवलपमेंट के लिए वातावरण तैयार करना
\n\nआवश्यक टूल्स इंस्टॉल करना
\n\nशुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित इंस्टॉल हैं:
\n\n- \n
- Swift 5.9+ — swift.org से डाउनलोड करें \n
- Docker — Linux वातावरण में बिल्ड करने के लिए \n
- AWS CLI — डिप्लॉयमेंट के लिए \n
- Xcode 15+ (वैकल्पिक, macOS के लिए) \n
Swift Package प्रोजेक्ट बनाना
\n\nAWS Lambda सपोर्ट के साथ एक नया Swift Package बनाएं:
\n\nmkdir MyLambdaFunction\ncd MyLambdaFunction\nswift package init --type executable\n\nPackage.swift खोलें और AWSLambdaRuntime पर निर्भरता जोड़ें:
// swift-tools-version: 5.9\nimport PackageDescription\n\nlet package = Package(\n name: "MyLambdaFunction",\n platforms: [.macOS(.v13)],\n dependencies: [\n .package(url: "https://github.com/swift-server/swift-aws-lambda-runtime.git", from: "1.0.0")\n ],\n targets: [\n .executableTarget(\n name: "MyLambdaFunction",\n dependencies: [\n .product(name: "AWSLambdaRuntime", package: "swift-aws-lambda-runtime")\n ]\n )\n ]\n)\n\nSwift में पहला Serverless फंक्शन लिखना
\n\nLambda फंक्शन की मूल संरचना
\n\nSources/MyLambdaFunction/main.swift फ़ाइल बनाएं और निम्नलिखित कोड डालें:
import AWSLambdaRuntime\nimport AWSLambdaEvents\n\n// अनुरोध की संरचना परिभाषित करें\nstruct GreetingRequest: Codable {\n let name: String\n}\n\n// प्रतिक्रिया की संरचना परिभाषित करें\nstruct GreetingResponse: Codable {\n let message: String\n let timestamp: String\n}\n\n// मुख्य हैंडलर\n@main\nstruct MyLambdaHandler: SimpleLambdaHandler {\n typealias Event = GreetingRequest\n typealias Output = GreetingResponse\n \n func handle(_ event: GreetingRequest, context: LambdaContext) async throws -> GreetingResponse {\n let dateFormatter = DateFormatter()\n dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"\n \n return GreetingResponse(\n message: "नमस्ते, \\(event.name)! Swift Serverless की दुनिया में आपका स्वागत है।",\n timestamp: dateFormatter.string(from: Date())\n )\n }\n}\n\nHTTP अनुरोधों को संभालना (API Gateway)
\n\nAPI Gateway के साथ काम करने के लिए APIGatewayV2Request का उपयोग करें:
import AWSLambdaRuntime\nimport AWSLambdaEvents\n\n@main\nstruct HTTPHandler: SimpleLambdaHandler {\n typealias Event = APIGatewayV2Request\n typealias Output = APIGatewayV2Response\n \n func handle(_ event: APIGatewayV2Request, context: LambdaContext) async throws -> APIGatewayV2Response {\n // query-पैरामीटर से डेटा प्राप्त करें\n let name = event.queryStringParameters?["name"] ?? "अतिथि"\n \n let responseBody = """\n {\n "message": "नमस्ते, \\(name)!",\n "path": "\\(event.rawPath)"\n }\n """\n \n return APIGatewayV2Response(\n statusCode: .ok,\n