TypeScript के साथ AWS Lambda पर Serverless फंक्शन का परिचय
\n\nServerless आर्किटेक्चर आधुनिक क्लाउड डेवलपमेंट का मानक बन गया है। AWS Lambda आपको सर्वर मैनेज किए बिना कोड चलाने की सुविधा देता है, और TypeScript सख्त टाइपिंग और डेवलपमेंट में आसानी जोड़ता है। इस लेख में हम पूरी प्रक्रिया को समझेंगे: पहला फंक्शन बनाने से लेकर प्रोडक्शन में डिप्लॉय करने तक। आप सीखेंगे कि TypeScript में प्रभावी serverless फंक्शन कैसे लिखें, ट्रिगर्स के साथ काम करें और एरर को हैंडल करें।
\n\nServerless फंक्शन माइक्रोसर्विसेज, इवेंट प्रोसेसिंग, वेबहुक्स और बैकग्राउंड टास्क के लिए एकदम सही हैं। TypeScript कोड को सुरक्षित और अनुमानित बनाता है, जो प्रोडक्शन सॉल्यूशंस के लिए बहुत ज़रूरी है।
\n\n1. AWS Lambda के लिए TypeScript एनवायरनमेंट सेटअप
\n\nशुरू करने से पहले ज़रूरी टूल्स इंस्टॉल करें। आपको Node.js (वर्जन 18+), npm और AWS CLI की आवश्यकता होगी।
\n\n1.1. डिपेंडेंसीज इंस्टॉल करना
\n\nnpm init -y\nnpm install -D typescript @types/node @aws-sdk/client-lambda\nnpm install aws-lambda @types/aws-lambda\n\n\n1.2. TypeScript कॉन्फ़िगरेशन
\n\nLambda के लिए सेटिंग्स के साथ tsconfig.json फ़ाइल बनाएं:
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "lib": ["ES2020"],\n "outDir": "./dist",\n "rootDir": "./src",\n "strict": true,\n "esModuleInterop": true,\n "skipLibCheck": true,\n "forceConsistentCasingInFileNames": true,\n "resolveJsonModule": true,\n "declaration": true,\n "declarationMap": true,\n "sourceMap": true\n },\n "include": ["src/**/*"],\n "exclude": ["node_modules", "dist"]\n}\n\n\n1.3. AWS CLI इंस्टॉल करना
\n\nआधिकारिक स्रोत से AWS CLI डाउनलोड और सेटअप करें। इंस्टॉल करने के बाद यह कमांड चलाएं:
\n\naws configure\n\n\nअपना Access Key ID, Secret Access Key, रीजन (जैसे us-east-1) और आउटपुट फॉर्मेट (json) दर्ज करें।
2. TypeScript में पहला Serverless फंक्शन बनाना
\n\nप्रोजेक्ट की संरचना इस प्रकार होनी चाहिए:
\n\nmy-lambda-project/\n├── src/\n│ └── handler.ts\n├── dist/\n├── tsconfig.json\n├── package.json\n└── .gitignore\n\n\n2.1. बेसिक Lambda हैंडलर
\n\nएक सरल फंक्शन के साथ src/handler.ts फ़ाइल बनाएं:
import { Context, APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';\n\ninterface HelloResponse {\n message: string;\n timestamp: string;\n eventType: string;\n}\n\nexport const handler = async (\n event: APIGatewayProxyEvent,\n context: Context\n): Promise<APIGatewayProxyResult> => {\n console.log('Event:', JSON.stringify(event, null, 2));\n console.log('Context:', context);\n\n const response: HelloResponse = {\n message: 'AWS Lambda और TypeScript से नमस्ते!',\n timestamp: new Date().toISOString(),\n eventType: event.httpMethod || 'अज्ञात'\n };\n\n return {\n statusCode: 200,\n headers: {\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n },\n body: JSON.stringify(response)\n };\n};\n\n\n2.2. TypeScript कंपाइल करना
\n\npackage.json में स्क्रिप्ट्स जोड़ें:
"scripts": {\n "build": "tsc",\n "watch": "tsc --watch",\n "clean": "rm -rf dist"\n}\n\n\nबिल्ड चलाएं:
\n\nnpm run build\n\n\nजांचें कि dist फ़ोल्डर में handler.js फ़ाइल बनी है या नहीं।
3. AWS पर Lambda फंक्शन डिप्लॉय करना
\n\nडिप्लॉय करने के कई तरीके हैं। सबसे आसान तरीका AWS CLI के माध्यम से है।
\n\n3.1. फंक्शन को पैकेज करना
\n\nकोड का ZIP आर्काइव बनाएं:
\n\ncd dist\nzip -r ../function.zip .\ncd ..\n\n\n3.2. Lambda फंक्शन बनाना
\n\nAWS CLI कमांड चलाएं:
\n\naws lambda create-function \\\n --function-name hello-typescript \\\n --runtime nodejs18.x \\\n --role arn:aws:iam::Y