AWS Lambda में C# पर सर्वरलेस फ़ंक्शन: A से Z तक पूर्ण गाइड

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

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

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

सर्वरलेस और AWS Lambda का C# में परिचय

\n\n

सर्वरलेस आर्किटेक्चर (सर्वर रहित कंप्यूटिंग) एक विकास मॉडल है जिसमें डेवलपर केवल बिज़नेस लॉजिक के कोड पर ध्यान केंद्रित करता है, और बुनियादी ढाँचे (सर्वर, स्केलिंग, मॉनिटरिंग) का प्रबंधन क्लाउड प्रदाता करता है। AWS Lambda सर्वरलेस फ़ंक्शन लागू करने के लिए सबसे लोकप्रिय सेवाओं में से एक है, और यह .NET इकोसिस्टम को बेहतरीन रूप से सपोर्ट करता है।

\n\n

इस लेख में हम AWS Lambda पर C# के साथ काम करने का पूरा चक्र समझेंगे: प्रोजेक्ट बनाने से लेकर डिप्लॉय और डीबगिंग तक। आप सीखेंगे कि वातावरण कैसे सेट करें, एक कुशल फ़ंक्शन कैसे लिखें, इवेंट्स को कैसे प्रोसेस करें और सामान्य गलतियों से कैसे बचें। यह सामग्री उन C# डेवलपर्स के लिए है जो Amazon Web Services में सर्वरलेस दृष्टिकोण सीखना चाहते हैं।

\n\n

1. वातावरण सेटअप और पहला प्रोजेक्ट बनाना

\n\n

टूल्स की स्थापना

\n

C# पर AWS Lambda के साथ काम करने के लिए आपको चाहिए:

\n
    \n
  • .NET SDK संस्करण 6.0 या 8.0 (नवीनतम LTS संस्करण अनुशंसित)।
  • \n
  • AWS CLI — AWS सेवाओं के प्रबंधन के लिए कमांड लाइन इंटरफ़ेस।
  • Amazon.Lambda.Templates — .NET CLI के लिए टेम्पलेट्स का सेट।
  • Docker Desktop (वैकल्पिक) — Lambda एमुलेशन के साथ स्थानीय परीक्षण के लिए।
\n\n

टर्मिनल के माध्यम से Lambda टेम्पलेट्स स्थापित करें:

\n
dotnet new -i Amazon.Lambda.Templates
\n\n

प्रोजेक्ट बनाना

\n

निम्न कमांड का उपयोग करके एक नया Lambda फ़ंक्शन बनाएँ:

\n
dotnet new lambda.EmptyFunction -n MyFirstLambda -o ./MyFirstLambda\ncd MyFirstLambda
\n\n

प्रोजेक्ट संरचना में Function.cs फ़ाइल शामिल है जिसमें बेस क्लास Function और एक हैंडलर मेथड है। डिफ़ॉल्ट रूप से, एक सरल फ़ंक्शन के लिए टेम्पलेट का उपयोग किया जाता है जो एक स्ट्रिंग लेता है और एक स्ट्रिंग लौटाता है।

\n\n

Function.cs खोलें और इसे इस प्रकार बदलें:

\n
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 के साथ उदाहरण:

\n
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\n

curl के माध्यम से परीक्षण अनुरोध भेजें:

\n
curl -X POST "http://localhost:9000/2015-03-31/functions/function/invocations" \\\n  -d '"विश्व"'
\n\n

2. विभिन्न प्रकार के इवेंट्स को संभालना

\n\n

API Gateway के साथ काम करना (HTTP अनुरोध)

\n

अक्सर Lambda का उपयोग Amazon API Gateway के माध्यम से REST API के बैकएंड के रूप में किया जाता है। इस मामले में, हैंडलर APIGatewayProxyRequest ऑब्जेक्ट लेता है और APIGatewayProxyResponse लौटाता है।

\n\n

NuGet पैकेज स्थापित करें:

\n
dotnet add package Amazon.Lambda.APIGatewayEvents
\n\n

HTTP POST अनुरोध हैंडलर फ़ंक्शन का उदाहरण:

\n
using 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        //                

ब्लॉग

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