TypeScript पर सर्वरलेस: AWS Lambda और बैकएंड के लिए विकल्प

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

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

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

TypeScript पर सर्वरलेस: आपका बैकएंड बिना सर्वर (और सिरदर्द) के

\n\n

नमस्ते, साथी! यदि आपने कभी VPS सेट अप किया है, nginx से जूझा है, CPU लोड की निगरानी की है और रात के तीन बजे क्रैश हुए PostgreSQL को पुनः आरंभ किया है — यह लेख आपके लिए है। दुनिया सर्वरलेस (बिना सर्वर के कंप्यूटिंग) की ओर बढ़ रही है, और TypeScript इस ट्रेन में पूरी गति से कूदने के लिए एक आदर्श भाषा है।

\n\n

आइए समझते हैं कि सर्वरलेस फंक्शन क्या हैं, उन्हें TypeScript पर कैसे लिखें, और अपने प्रोजेक्ट के लिए कौन सा प्लेटफ़ॉर्म (AWS Lambda, Google Cloud Functions, Yandex Cloud Functions) चुनें। स्पॉयलर: कोड होगा, उदाहरण होंगे, लेकिन सर्वर नहीं होंगे।

\n\n

सर्वरलेस क्या है? (स्पॉयलर: सर्वर अभी भी हैं)

\n\n

«सर्वरलेस» नाम एक मार्केटिंग चाल है। सर्वर निश्चित रूप से मौजूद हैं, लेकिन आप उनके बारे में कुछ नहीं जानते और जानना नहीं चाहते। आप बस एक फंक्शन (आमतौर पर TypeScript पर) लिखते हैं, इसे क्लाउड पर अपलोड करते हैं, और यह अनुरोध पर निष्पादित होता है। आप केवल निष्पादन समय के लिए भुगतान करते हैं — निष्क्रिय सर्वर या स्केलिंग के लिए नहीं।

\n\n

इसे FaaS (Function as a Service) कहा जाता है। मुख्य लाभ:

\n\n
    \n
  • स्वचालित स्केलिंग — कुछ सेकंड में 0 से 10,000 अनुरोध प्रति सेकंड।
  • \n
  • बचत — आप निष्पादन के मिलीसेकंड के लिए भुगतान करते हैं, मशीन किराए पर लेने के लिए नहीं।
  • \n
  • कम DevOps — क्लाउड स्वयं रनटाइम वातावरण को अपडेट करता है, कमजोरियों को पैच करता है।
  • \n
  • TypeScript आउट ऑफ द बॉक्स — सभी बड़े प्रदाता Node.js का समर्थन करते हैं, और इसलिए TypeScript का भी।
  • \n
\n\n

लेकिन नुकसान भी हैं: कोल्ड स्टार्ट (लोडिंग के पहले मिलीसेकंड), निष्पादन समय की सीमा (आमतौर पर 15 मिनट), डिबगिंग में कठिनाइयाँ।

\n\n

AWS Lambda के लिए TypeScript पर पहला सर्वरलेस फंक्शन लिखना

\n\n

AWS Lambda सर्वरलेस का राजा है। इसके साथ शुरू करते हैं। TypeScript के लिए aws-sdk और @types/aws-lambda इंस्टॉल करें।

\n\n
npm init -y\nnpm install typescript @types/node aws-lambda --save-dev\nnpx tsc --init
\n\n

एक फ़ाइल handler.ts बनाएँ:

\n\n
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';\n\nexport const handler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {\n  const name = event.queryStringParameters?.name || 'अतिथि';\n  \n  return {\n    statusCode: 200,\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      message: `नमस्ते, ${name}! यह TypeScript पर एक सर्वरलेस फंक्शन है।`,\n      timestamp: new Date().toISOString(),\n    }),\n  };\n};
\n\n

प्रोजेक्ट बनाएँ:

\n\n
npx tsc\nzip -r function.zip .
\n\n

कंसोल के माध्यम से AWS Lambda में आर्काइव अपलोड करें, रनटाइम Node.js 20.x निर्दिष्ट करें, और एंट्री पॉइंट के रूप में handler.handler सेट करें।

\n\n

हो गया! अब आपके पास एक HTTP API है जिसे सर्वर की आवश्यकता नहीं है। इसे API Gateway पर लटकाकर उपयोग किया जा सकता है।

\n\n

Google Cloud Functions: Google से TypeScript विकल्प

\n\n

यदि आप Google इकोसिस्टम (Firebase, BigQuery, GCP) पसंद करते हैं, तो Google Cloud Functions आपकी पसंद है। सिंटैक्स AWS के समान है, लेकिन कुछ बारीकियाँ हैं।

\n\n

टूल इंस्टॉल करें:

\n\n
npm install -g @google-cloud/functions-framework
\n\n

index.ts बनाएँ:

\n\n
import { Request, Response } from 'express';\n\nexport const helloWorld = (req: Request, res: Response) => {\n  const name = req.query.name || 'दुनिया';\n  res.json({\n    message: `नमस्ते, ${name}! यह TypeScript पर Google Cloud Functions है।`,\n    timestamp: new Date().toISOString(),\n  });\n};
\n\n

स्थानीय परीक्षण के लिए:

\n\n
npx @google-cloud/functions-framework --target=helloWorld
\n\n

एक कमांड में डिप्लॉयमेंट:

\n\n
gcloud functions deploy hello-world \\\n  --runtime nodejs20 \\\n  --trigger-http \\\n  --allow-unauthenticated \\\n  --entry-point hell                

ब्लॉग

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