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

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

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

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

परिचय: सर्वरलेस और C# — आदर्श जोड़ी क्यों है

\n

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

\n

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

\n\n

1. एनवायरनमेंट तैयार करना और प्रोजेक्ट बनाना

\n

1.1 टूल्स इंस्टॉल करना

\n

C# और AWS Lambda के साथ काम करने के लिए आपको आवश्यकता होगी:

\n
    \n
  • .NET SDK (8.0 या 6.0) — dotnet.microsoft.com से डाउनलोड करें;
  • \n
  • AWS CLI — टर्मिनल से संसाधनों को प्रबंधित करने के लिए;
  • \n
  • Amazon.Lambda.Tools — डिप्लॉय के लिए .NET ग्लोबल टूल।
  • \n
\n

Lambda Tools को एक कमांड से इंस्टॉल करें:

\n
dotnet tool install -g Amazon.Lambda.Tools
\n\n

1.2 फ़ंक्शन टेम्पलेट बनाना

\n

त्वरित शुरुआत के लिए बिल्ट-इन टेम्पलेट का उपयोग करें:

\n
dotnet new lambda.EmptyFunction --name MyFirstLambda --profile default --region us-east-1
\n

यह कमांड Function.cs फ़ाइल और डिप्लॉय सेटिंग्स के लिए aws-lambda-tools-defaults.json के साथ एक प्रोजेक्ट बनाएगा।

\n\n

2. C# में सर्वरलेस फ़ंक्शन का कोड लिखना

\n

2.1 Lambda फ़ंक्शन की बुनियादी संरचना

\n

प्रत्येक Lambda फ़ंक्शन एक मेथड है जो एक इवेंट ऑब्जेक्ट और एक्ज़ीक्यूशन कॉन्टेक्स्ट लेता है। आइए एक सरल उदाहरण देखें:

\n
using Amazon.Lambda.Core;\nusing Amazon.Lambda.SQSEvents;\n\n[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]\n\npublic class Function\n{\n    public async Task<string> FunctionHandler(SQSEvent evnt, ILambdaContext context)\n    {\n        context.Logger.LogInformation("प्राप्त संदेश: " + evnt.Records.Count);\n        \n        foreach (var record in evnt.Records)\n        {\n            await ProcessMessageAsync(record.Body, context);\n        }\n        \n        return "संसाधित " + evnt.Records.Count + " संदेश";\n    }\n\n    private async Task ProcessMessageAsync(string messageBody, ILambdaContext context)\n    {\n        context.Logger.LogInformation("प्रसंस्करण: " + messageBody);\n        await Task.Delay(100); // कार्य का अनुकरण\n    }\n}
\n

LambdaSerializer एट्रीब्यूट पर ध्यान दें — यह बताता है कि JSON को कैसे सीरियलाइज़/डीसीरियलाइज़ करना है। C# के लिए SystemTextJson अनुशंसित है।

\n\n

2.2 विभिन्न ट्रिगर्स के साथ काम करना

\n

AWS Lambda कई इवेंट स्रोतों का समर्थन करता है। यहाँ API Gateway के माध्यम से HTTP अनुरोध का एक उदाहरण है:

\n
public async Task<APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)\n{\n    var name = request.QueryStringParameters?.ContainsKey("name") == true \n        ? request.QueryStringParameters["name"] \n        : "दुनिया";\n    \n    var responseBody = $"नमस्ते, {name}!";\n    \n    return new APIGatewayProxyResponse\n    {\n        StatusCode = 200,\n        Body = responseBody,\n        Headers = new Dictionary<string, string> { { "Content-Type", "text/plain" } }\n    };\n}
\n

HTTP के साथ काम करने के लिए Amazon.Lambda.APIGatewayEvents पैकेज इंस्टॉल करना होगा।

\n\n

3. फ़ंक्शन का डिप्लॉय और परीक्षण

\n

3.1 स्थानीय परीक्षण

\n

डिप्लॉय से पहले dotnet lambda invoke का उपयोग करके कोड को स्थानीय रूप से जांचें:

\n
dotnet lambda invoke --payload "{\\"Records\                

ब्लॉग

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