AWS Lambda Tutorial: Din guide till Amazon Serverless Computing



Denna AWS Lambda-handledning beskriver serverlös beräkningsplattform för AWS som täcker detaljer om Lambda-funktion, Händelsekälla, Lambda-prissättning med ett användningsfall.

AWS Lambda-handledning

Idag ska vi prata om AWS Lambda. AWS Lambda är en beräkningstjänst som erbjuds av Amazon. Du måste vara nyfiken eftersom det finns flera andra beräkningstjänster från AWS, som AWS EC2, AWS Elastic Beanstalk, AWS Opsworks etc., varför en annan beräkningstjänst? I denna AWS Lambda-handledning kommer du att upptäcka vad som är AWS Lambda, varför det används och i vilka användningsfall du bör överväga det.

Låt oss se hur Amazon definierar AWS Lambda och sedan kommer vi att ta ett djupt dyk in i nyckelbegreppen, förstå ett användningsfall med en praktisk i slutändan.





Lambda Serverless computing - aws lambda tutorial

Vad är AWS Lambda?

Amazon förklarar, AWS Lambda (& lambda) som en 'serverlös' beräkningstjänst, vilket innebär att utvecklarna inte behöver oroa sig för vilka AWS-resurser som ska startas, eller hur kommer de att hantera dem, de lägger bara koden på lambda och den körs , det är så enkelt! Det hjälper dig att fokusera på kärnkompetens, dvs App Building eller koden.



Var ska jag använda AWS Lambda?

AWS Lambda kör din backend-kod genom att automatiskt hantera AWS-resurserna. När vi säger 'hantera' inkluderar det att starta eller avsluta instanser, hälsokontroller, automatisk skalning, uppdatering eller lappning av nya uppdateringar etc.

Så, hur fungerar det?

Koden som du vill att Lambda ska köra är känd som en Lambda-funktion . Nu, som vi vet, körs en funktion bara när den kallas, eller hur? Här, Händelsekälla är den enhet som utlöser en Lambda-funktion och sedan utförs uppgiften.

Låt oss ta ett exempel för att förstå det tydligare.



Antag att du har en app för bildöverföring. Nu när du laddar upp en bild finns det många uppgifter innan du lagrar den, som att ändra storlek, använda filter, komprimering etc.

Så denna uppgift att ladda upp en bild kan definieras som en Händelsekälla eller 'trigger' som kommer att ringa Lambda-funktionen, och sedan kan alla dessa uppgifter utföras via Lambda-funktionen.

hur man skapar en objektmatris i java

I det här exemplet måste en utvecklare bara definiera händelsekällan och ladda upp koden.

Låt oss förstå detta exempel med riktiga AWS-resurser nu,

Fig. Lambda användningsfall med S3

Här kommer vi att ladda upp bilder i form av objekt till en S3-hink. Att ladda upp en bild till S3-skopan blir en händelsekälla eller 'trigger'.

Hela processen, som du kan se i diagrammet, är uppdelad i fem steg, låt oss förstå var och en av dem.

  1. Användaren laddar upp en bild (objekt) till en källkorg i S3 som har ett meddelande bifogat för Lambda.
  2. Meddelandet läses av S3 och det avgör vart meddelandet ska skickas.
  3. S3 skickar meddelandet till Lambda, detta meddelande fungerar som ett anrop från lambdafunktionen.
  4. Exekveringsroll i Lambda kan definieras med hjälp av IAM (Identity and Access Management) för att ge åtkomstbehörighet för AWS-resurser, för det här exemplet skulle det vara S3.
  5. Slutligen åberopar den önskad lambdafunktion som fungerar på objektet som har laddats upp till S3-skopan.

Om du traditionellt skulle lösa detta scenario, tillsammans med utveckling, skulle du ha anställt personer för att hantera följande uppgifter:

  • Storlek, tillhandahållande och skala upp gruppen av servrar
  • Hantera OS-uppdateringar
  • Använd säkerhetsplåster och
  • Övervaka all denna infrastruktur för prestanda och tillgänglighet.

Detta skulle ha varit en dyr, tråkig och tröttsam uppgift, därför är behovet av AWS Lambda motiverat.AWS Lambda är kompatibel med Node.JS, Python och Java, så du kan ladda upp din fil i en zip, definiera en händelsekälla och du är redo!

Du kan läsa mer om S3 AWS här för en djupare förståelse.

Vi vet nu -Hur Lambda fungerar ochVad Lambda doe s .

Nlåt oss förstå-

  • Var ska jag använda Lambda?
  • Vilket syfte tjänar Lambda, detandra AWS Compute-tjänster inte?

Om du skulle bygga en lösning på ett problem borde du kunna identifiera var du ska använda Lambda, eller hur?

Så som arkitekt har du följande alternativ för att utföra en uppgift:

  • AWS EC2
  • AWS elastisk bönstjälk
  • AWS OpsWorks
  • AWS Lambda

Låt oss ta ovanstående användningsfall som ett exempel och förstå varför vi valde Lambda för att lösa det.

AWS OpsWorks och AWS ElasticBeanstalk används för att distribuera en app, så vårt användningsfall är inte för att skapa en app , men att köra en back-end-kod.

Varför inte EC2?

Om du skulle använda EC2 måste du arkitektera allt, dvs lastbalanserare, EBS-volymer, programvarustackar etc. I lambda behöver du inte oroa dig för någonting, bara sätt in din kod, så kommer AWS att hantera resten!

Till exempel , i EC2 skulle du installera programvarupaket på din virtuella maskin som skulle stödja din kod, men i Lambda behöver du inte oroa dig för någon virtuell dator, bara infoga vanlig kod så kommer Lambda att köra den åt dig.

Men om din kod kommer att köras i timmar, och du förväntar dig en kontinuerlig ström av förfrågningar, borde du antagligen gå med EC2, eftersom Lambdas arkitektur är för en sporadisk typ av arbetsbelastning, där det kommer att finnas några tysta timmar och några toppar i nr. av förfrågningar också.

Till exempel logga e-postaktiviteten för att säga ett litet företag, skulle se mer aktivitet under dagen än på natten, det kan också finnas dagar då det finns mindre e-postmeddelanden att behandla, och ibland kan hela världen börja mejla dig! I båda fallen står Lambda till din tjänst.

Med tanke på detta användningsfall för ett stort socialt nätverksföretag, där e-postmeddelandena aldrig slutar eftersom det har en enorm användarbas, kanske Lambda inte är det lämpliga valet.

aktivitets livscykel för Android

Du kan läsa mer om EC2 AWS här för en djupare förståelse.

Begränsningar av AWS Lambda

Vissa begränsningar är specifika för hårdvara och andra är bundna av arkitekturen, låt oss diskutera dem alla.

Hårdvarubegränsningar inkluderar diskstorleken, som är begränsad till 512 MB, kan minnet variera mellan 128 MB och 1536 MB. Sedan finns det några andra som att timeout för körning kan maximeras till bara 5 minuter, din begäran kropps nyttolast kan inte vara mer än 6 MB och din begäran kropp är 128 KB. Begärans nyttolast är som de data som du skickar med en 'GET' - eller 'PUT' -förfrågan i HTTP, där som begärande organ skulle vara typen av förfrågan, rubriker etc.

Egentligen är detta inte begränsningar, utan är designgränserna som har ställts in i Lambdas arkitektur, så om ditt användningsfall inte passar dessa har du alltid de andra AWS-beräkningstjänsterna till ditt förfogande.

Vi diskuterade i denna AWS Lambda Tutorial att hur man gör uppgifter i Lambda är 'inte' tråkigt och tröttsamt. Låt oss nu täcka utgiftsdelen också.

Prissättning i AWS Lambda

Liksom de flesta AWS-tjänsterna är AWS Lambda också en betaltjänst, vilket innebär att du bara betalar vad du använder, därför debiteras du för följande parametrar

  • Antalet begäranden som du gör för din lambda-funktion
  • De varaktighet för vilken din kod körs.

Förfrågningar

  • Du debiteras för antalet förfrågningar som du gör i alla dina lambdafunktioner.
  • AWS Lambda räknar en begäran varje gång den börjar köra som svar på en händelsekälla eller anropa samtal, inklusive test anropas från konsolen. Låt oss titta på priserna nu:
    • Första 1 miljon förfrågningar, varje månad är gratis.
    • 0,20 $ per miljon förfrågningar därefter.

Varaktighet

  • Varaktigheten beräknas från det att din kod börjar köra till det ögonblick den återvänder eller avslutas, avrundas den upp till närmaste 100 ms.
  • Priset beror på hur mycket minne du tilldelar din funktion, du debiteras $ 0,00001667 för varje GB-sekund som används.

* Källa: AWS officiella webbplats

Om du har nått hit är du redo för en hands-on i Lambda. Låt oss ha lite kul!

Praktiskt: AWS Lambda DIY

Låt oss skapa en Lambda-funktion som loggar 'Ett objekt har lagts till' när du lägger till ett objekt i en specifik hink i S3.

Steg 1: Välj AWS Lambda från AWS Management Console under Compute-avsnittet.

Steg 2: Klicka på “Skapa en Lambda-funktion” på AWS Lambda Console.

Steg 3: På nästa sida måste du välja en ritning. Vi väljer till exempel den tomma funktionen för vårt användningsfall.

Steg 4: På nästa sida kommer du att (1) ställa in en utlösare, eftersom vi ska arbeta på S3, (2) välj S3-utlösaren och sedan (3) klicka på Nästa.

Steg 5: Fyll i detaljerna på konfigurationssidan. Du kan lägga in din egen kod eller så kan du kopiera samma kod från detta användningsfall. Efter det fyller du i hanteraren och rollen, lämnar de avancerade inställningarna som de är, i slutet klickar du på nästa.

Steg 6: På nästa sida, granska all information och klicka på “Skapa funktion”.

kan du skapa en rad objekt i java

Steg 7: Nu, eftersom vi skapade funktionen för S3-hink, så fort du lägger till en fil i din S3-hink, bör du få en logg för samma i CloudWatch, som är en övervakningstjänst från AWS.

Grattis!Du har kört Lambda-funktionen.

Jag hoppas att du gillade det djupa dyket i AWS Lambda Tutorial. Det är ett av de mest önskade kunskapsområdena i AWS-ekosystemet för jobbpositioner som Solutions Architect, Cloud Engineer, DevOps Engineer. Här är en samling av för att hjälpa dig att förbereda dig för din nästa AWS-jobbintervju.

Om du tyckte att AWS Lambda Tutorial var relevant kan du kolla in Edurekas live- och instruktörsledda kurs på , skapades av branschutövare.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.