AWS Lambda के साथ स्विफ्ट में सर्वरलेस का परिचय
\n\nसर्वरलेस आर्किटेक्चर आधुनिक क्लाउड डेवलपमेंट का मानक बनता जा रहा है। AWS Lambda की बदौलत, डेवलपर्स सर्वर प्रबंधित किए बिना कोड चला सकते हैं, केवल वास्तविक निष्पादन समय के लिए भुगतान करते हैं। हाल तक, स्विफ्ट सर्वरलेस दुनिया से अलग था, लेकिन AWS Lambda पर स्विफ्ट के आधिकारिक समर्थन के आगमन के साथ स्थिति पूरी तरह से बदल गई है।
\n\nइस लेख में, हम स्विफ्ट पर सर्वरलेस फंक्शन के साथ काम करने के पूरे चक्र को कवर करेंगे: पर्यावरण सेटअप से लेकर प्रोडक्शन में डिप्लॉय तक। आप सीखेंगे कि कुशल क्लाउड समाधान बनाने के लिए अपने iOS/macOS डेवलपमेंट अनुभव का उपयोग कैसे करें।
\n\nसर्वरलेस के लिए स्विफ्ट क्यों?
\n\nस्विफ्ट केवल मोबाइल ऐप्स के लिए भाषा नहीं है। इसकी ताकत इसे सर्वरलेस के लिए एक उत्कृष्ट विकल्प बनाती है:
\n\n- \n
- टाइप सुरक्षा — कंपाइलर बिल्ड चरण में त्रुटियों को पकड़ लेता है \n
- उच्च प्रदर्शन — नेटिव कोड इंटरप्रेटेड भाषाओं की तुलना में तेज़ चलता है \n
- आधुनिक सिंटैक्स — कोड पढ़ने और बनाए रखने में आसान है \n
- साझा कोड बेस — iOS/macOS प्रोजेक्ट्स से मॉडल और लॉजिक का पुन: उपयोग किया जा सकता है \n
AWS Lambda पर स्विफ्ट चलाने के लिए, पूर्व-स्थापित Swift 5.10 के साथ आधिकारिक Amazon Linux 2 इमेज का उपयोग किया जाता है। यह पूर्ण संगतता और न्यूनतम कोल्ड स्टार्ट सुनिश्चित करता है।
\n\nपर्यावरण सेटअप और पहला फंक्शन बनाना
\n\nआवश्यक टूल्स की स्थापना
\n\nशुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित स्थापित हैं:
\n\n- \n
- Swift 5.10 या नया \n
- Docker (Linux वातावरण में बिल्ड के लिए) \n
- कॉन्फ़िगर किए गए credentials के साथ AWS CLI \n
- Homebrew (macOS के लिए) \n
# Homebrew के माध्यम से स्विफ्ट स्थापित करना\nbrew install swift\n\n# संस्करण जांच\nswift --version\n\n# AWS CLI स्थापित करना\nbrew install awscli\n\n# AWS कॉन्फ़िगर करना\naws configure\n\nSwift Package प्रोजेक्ट बनाना
\n\nएक नया निष्पादन योग्य स्विफ्ट पैकेज बनाएं:
\n\nmkdir MyLambdaFunction\ncd MyLambdaFunction\nswift package init --type executable\n\nअब AWS Lambda Runtime के साथ काम करने के लिए Package.swift अपडेट करें:
// swift-tools-version:5.10\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 .testTarget(\n name: "MyLambdaFunctionTests",\n dependencies: ["MyLambdaFunction"]),\n ]\n)\n\nहैंडलर फंक्शन का कोड
\n\nSources/MyLambdaFunction/main.swift की सामग्री बदलें:
import AWSLambdaRuntime\n\n// अनुरोध संरचना परिभाषित करें\nstruct Request: Codable {\n let name: String\n let age: Int\n}\n\n// प्रतिक्रिया संरचना परिभाषित करें\nstruct Response: Codable {\n let message: String\n let isAdult: Bool\n}\n\n// मुख्य हैंडलर\n@main\nstruct MyHandler: SimpleLambdaHandler {\n typealias Event = Request\n typealias Output = Response\n\n func handle(_ event: Request, context: LambdaContext) async throws -> Response {\n let isAdult = event.age >= 18\n return Response(\n message: "नमस्ते, \\(event.name)!",\n isAdult: isAdult\n )\n }\n}\n\nAWS Lambda पर बिल्ड और डिप्लॉय
\n\nLinux के लिए बिल्ड
\n\nचूंकि macOS पर स्विफ्ट macOS के लिए बाइनरी बनाता है, हमें Docker का उपयोग करने की आवश्यकता है:
\n\n# Dockerfile बनाएं\ncat << EOF > Dockerfile\nFROM swift:5.10-amazonlinux2 AS build\nWORKDIR /app\nCOPY . .\nRUN swift build -c release --