सर्वरलेस और AWS Lambda का C# में परिचय
\n\nसर्वरलेस आर्किटेक्चर (सर्वर रहित कंप्यूटिंग) एक विकास मॉडल है जिसमें डेवलपर केवल बिज़नेस लॉजिक के कोड पर ध्यान केंद्रित करता है, और बुनियादी ढाँचे (सर्वर, स्केलिंग, मॉनिटरिंग) का प्रबंधन क्लाउड प्रदाता करता है। AWS Lambda सर्वरलेस फ़ंक्शन लागू करने के लिए सबसे लोकप्रिय सेवाओं में से एक है, और यह .NET इकोसिस्टम को बेहतरीन रूप से सपोर्ट करता है।
\n\nइस लेख में हम AWS Lambda पर C# के साथ काम करने का पूरा चक्र समझेंगे: प्रोजेक्ट बनाने से लेकर डिप्लॉय और डीबगिंग तक। आप सीखेंगे कि वातावरण कैसे सेट करें, एक कुशल फ़ंक्शन कैसे लिखें, इवेंट्स को कैसे प्रोसेस करें और सामान्य गलतियों से कैसे बचें। यह सामग्री उन C# डेवलपर्स के लिए है जो Amazon Web Services में सर्वरलेस दृष्टिकोण सीखना चाहते हैं।
\n\n1. वातावरण सेटअप और पहला प्रोजेक्ट बनाना
\n\nटूल्स की स्थापना
\nC# पर AWS Lambda के साथ काम करने के लिए आपको चाहिए:
\n- \n
- .NET SDK संस्करण 6.0 या 8.0 (नवीनतम LTS संस्करण अनुशंसित)। \n
- AWS CLI — AWS सेवाओं के प्रबंधन के लिए कमांड लाइन इंटरफ़ेस।
- Amazon.Lambda.Templates — .NET CLI के लिए टेम्पलेट्स का सेट।
- Docker Desktop (वैकल्पिक) — Lambda एमुलेशन के साथ स्थानीय परीक्षण के लिए।
टर्मिनल के माध्यम से Lambda टेम्पलेट्स स्थापित करें:
\ndotnet new -i Amazon.Lambda.Templates\n\nप्रोजेक्ट बनाना
\nनिम्न कमांड का उपयोग करके एक नया Lambda फ़ंक्शन बनाएँ:
\ndotnet new lambda.EmptyFunction -n MyFirstLambda -o ./MyFirstLambda\ncd MyFirstLambda\n\nप्रोजेक्ट संरचना में Function.cs फ़ाइल शामिल है जिसमें बेस क्लास Function और एक हैंडलर मेथड है। डिफ़ॉल्ट रूप से, एक सरल फ़ंक्शन के लिए टेम्पलेट का उपयोग किया जाता है जो एक स्ट्रिंग लेता है और एक स्ट्रिंग लौटाता है।
Function.cs खोलें और इसे इस प्रकार बदलें:
using Amazon.Lambda.Core;\nusing Amazon.Lambda.Serialization.SystemTextJson;\n\n[assembly: LambdaSerializer(typeof(DefaultLambdaJsonSerializer))]\n\npublic class Function\n{\n public string FunctionHandler(string input, ILambdaContext context)\n {\n context.Logger.LogInformation($"इनपुट प्राप्त हुआ: {input}");\n return $"नमस्ते, {input}! आपका फ़ंक्शन सफलतापूर्वक निष्पादित हुआ।";\n }\n}\n\nस्थानीय परीक्षण
\nफ़ंक्शन को स्थानीय रूप से चलाने के लिए dotnet lambda invoke उपयोगिता या Docker में Lambda Runtime Interface Emulator (RIE) का उपयोग करें। RIE के साथ उदाहरण:
docker run --rm -v "$PWD/bin/Release/net8.0/publish":/var/task:ro,delegated \\\n -p 9000:8080 \\\n public.ecr.aws/lambda/dotnet8:latest \\\n MyFirstLambda::MyFirstLambda.Function::FunctionHandler\n\ncurl के माध्यम से परीक्षण अनुरोध भेजें:
\ncurl -X POST "http://localhost:9000/2015-03-31/functions/function/invocations" \\\n -d '"विश्व"'\n\n2. विभिन्न प्रकार के इवेंट्स को संभालना
\n\nAPI Gateway के साथ काम करना (HTTP अनुरोध)
\nअक्सर Lambda का उपयोग Amazon API Gateway के माध्यम से REST API के बैकएंड के रूप में किया जाता है। इस मामले में, हैंडलर APIGatewayProxyRequest ऑब्जेक्ट लेता है और APIGatewayProxyResponse लौटाता है।
NuGet पैकेज स्थापित करें:
\ndotnet add package Amazon.Lambda.APIGatewayEvents\n\nHTTP POST अनुरोध हैंडलर फ़ंक्शन का उदाहरण:
\nusing Amazon.Lambda.APIGatewayEvents;\nusing System.Text.Json;\n\npublic class Function\n{\n public async Task<APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)\n {\n context.Logger.LogInformation($"अनुरोध प्राप्त हुआ: {request.HttpMethod} {request.Path}");\n\n // अनुरोध के बॉडी को पार्स करना\n var body = JsonSerializer.Deserialize<Dictionary<string, string>>(request.Body);\n var name = body?.GetValueOrDefault("name") ?? "अतिथि";\n\n //