खोज…


परिचय

सर्वरलेस आंदोलन के हिस्से के रूप में, AWS ने हाल ही में AWS लैम्ब्डा कार्यों के लिए C # समर्थन की घोषणा की। इस लेख में, मैं आपको विज़ुअल स्टूडियो 2015 का उपयोग करके एक सरल C # AWS लैम्ब्डा फंक्शन को विकसित करने, स्थापित करने और कॉल करने का तरीका दिखाऊंगा।

इस उदाहरण को शुरू करने से पहले, पहले इस दस्तावेज़ के रिमार्क्स अनुभाग पर जाएं और सुनिश्चित करें कि आपके पास स्थापित सभी आवश्यक घटक हैं।

टिप्पणियों

आवश्यक घटक स्थापित करें

इस लेखन (जनवरी 2017) के समय, निम्न घटकों को इस क्रम में आपकी मशीन पर स्थापित करना होगा। मेरे द्वारा उपयोग की गई मशीन में विंडोज 10 होम स्थापित किया गया था।

  1. विजुअल स्टूडियो 2015 अपडेट 3
  2. दृश्य स्टूडियो 2015 के लिए एडब्ल्यूएस टूलकिट - संस्करण 1.11.2.0
  3. Microsoft .NET कोर टूल (पूर्वावलोकन 2) - संस्करण 14.1.21111.0

इन घटकों में से प्रत्येक सक्रिय रूप से विकसित और जारी किया जाता है, इसलिए लिंक और संस्करणों की दोहरी जांच करें और आवश्यकता होने पर इस दस्तावेज़ को अपडेट करें।

इनमें से प्रत्येक को स्थापित होने में कुछ समय लग सकता है, इसलिए धैर्य रखें, गलतियों को कम करने के लिए एक समय में एक करें।

अंत में, विकास शुरू करने से पहले विंडोज को रिबूट करना दुखद है, लेकिन विंडोज बॉक्स पर प्रमुख विकास टूल इंस्टॉलेशन करने के बाद हमेशा एक अच्छा विचार है।

चरण 1। Visual Studio में एक नया समाधान बनाएँ

  1. विज़ुअल स्टूडियो खोलें और फ़ाइल चुनें -> नई परियोजना
  2. टेस्ट के साथ AWS लैम्ब्डा प्रोजेक्ट चुनें (.NET Core) यहाँ छवि विवरण दर्ज करें
  3. इसके बाद Select Blueprint स्क्रीन प्रदर्शित होगी। रिक्त फ़ंक्शन का चयन करें और समाप्त बटन पर क्लिक करें: यहाँ छवि विवरण दर्ज करें
  4. टूल्स -> नुगेट पैकेज मैनेजर -> पैकेज मैनेजर कंसोल पर जाएं।
  5. कंसोल विंडो में, टाइप करें इंस्टाल-पैकेज Amazon.Lambda.Core
  6. समाधान एक्सप्लोरर में अपनी परियोजना पर राइट-क्लिक करें और संकुल को पुनर्स्थापित करें चुनें। कोड लिखना शुरू करने से पहले यह अंतिम तैयारी चरण है।

यहाँ छवि विवरण दर्ज करें

चरण 2. अपनी परियोजना में कोड जोड़ें और बदलें

  1. Function.cs खोलें और निम्न के साथ वर्ग कोड बदलें:

    public class Function
    {
    
    /// <summary>
    /// A simple function that takes a birth date and returns Age in years
    /// </summary>
    /// <param name="input"></param>
    /// <returns>Age is years</returns>
    /// 
    [LambdaSerializer(typeof(SimpleSerializer))]
    public string FunctionHandler(Dictionary<string, int> input)
    {
        var defaultMessage = "Age could not be determined.";
    
        var birthDate = new DateTime(input["year"], input["month"], input["day"]);
        var ageInYears = DateTime.Today.Year - birthDate.Year;
        if (birthDate.DayOfYear > DateTime.Today.DayOfYear)
            ageInYears--;
    
        defaultMessage = $"Age in years: {ageInYears}";
    
        return defaultMessage;
    }
    }
    

आपको शीर्ष के पास निम्नलिखित कथनों का उपयोग करना होगा:

using System.Collections.Generic;
using Amazon.Lambda.Core;
  1. SimpleSerializer.cs नामक प्रोजेक्ट में एक फ़ाइल जोड़ें
  2. उस फ़ाइल में निम्न कोड रखें:
using System;

using System.IO;
using Amazon.Lambda.Core;
using Newtonsoft.Json;

namespace AWSLambdaFunctionAgeInYears
{
public class SimpleSerializer : ILambdaSerializer
{
    public T Deserialize<T>(Stream requestStream)
    {
        string text;
        using (var reader = new StreamReader(requestStream))
            text = reader.ReadToEnd();

        try
        {
            return JsonConvert.DeserializeObject<T>(text);
        }
        catch (Exception ex)
        {
            if (typeof(T) == typeof(System.String))
                return (T)Convert.ChangeType(text, typeof(T));

            throw ex;
        }

    }

    public void Serialize<T>(T response, Stream responseStream)
    {
        StreamWriter streamWriter = new StreamWriter(responseStream);
        try
        {
            string text = JsonConvert.SerializeObject(response);
            streamWriter.Write(text);
            streamWriter.Flush();
        }
        catch (Exception ex)
        {
            if (typeof(T) == typeof(System.String))
            {
                streamWriter.Write(response);
                streamWriter.Flush();
                return;
            }

            throw ex;
        }

    }
}
}
  1. Test Project में, FunctionTest.cs की लाइन 23 को निम्न में बदलें:

            var upperCase = function.FunctionHandler(null);
    
  2. अपने समाधान का निर्माण करें - आपके पास कोई त्रुटि नहीं होनी चाहिए।

चरण 3 - अपने लैम्ब्डा फ़ंक्शन को AWS में स्थापित करें

  1. अपनी परियोजना पर राइट क्लिक करें और प्रकाशित करें एडब्ल्यूएस लाम्बा ...

  2. AWS लैंबडा स्क्रीन पर अपलोड दिखाई देगा। सुनिश्चित करें कि सही क्षेत्र चुना गया है। सभी चूक को दूर रखें। फिर केवल फ़ंक्शन नाम दर्ज करें: AWSLambdaFunctionAgeInYears और फिर अगला क्लिक करें। यहाँ छवि विवरण दर्ज करें

  3. अगले पृष्ठ पर, भूमिका नाम फ़ील्ड के लिए AWSLambdaRole चुनें। अपलोड पर क्लिक करें और फ़ंक्शन को त्रुटि के बिना अपलोड करना चाहिए। यहाँ छवि विवरण दर्ज करें

चरण 4. विज़ुअल स्टूडियो के भीतर से अपने AWS लैम्ब्डा फ़ंक्शन को शामिल करें

  1. ऊपर चरण 3 के बाद, Visual Studio आपके फ़ंक्शन को लोड करने के साथ View Function विंडो खोलेगा।
  2. इस स्क्रीन के नीचे बाईं ओर, नमूना इनपुट बॉक्स में निम्न json दर्ज करें:
{
"month": "10",
"day": "28",
"year": "1979"
}

यहाँ छवि विवरण दर्ज करें

  1. अंतिम चरण: हरे इनवोक बटन पर क्लिक करें। समारोह एडब्ल्यूएस पर चलेगा और प्रतिक्रिया नीचे दाहिने हाथ की प्रतिक्रिया विंडो में प्रदर्शित की जाएगी।


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow