Vad är AWS Lambda? Lambdafunktion med exempel

Innan AWS Lambda-funktion, låt oss förstå:

Vad är serverlöst?

Serverlös är en term som generellt refererar till serverlösa applikationer. Serverlösa applikationer är sådana som inte behöver någon serverförsörjning och inte behöver hantera servrar.

Vad är AWS Lambda?

AWS Lambda är en händelsedriven, serverlös datorplattform som tillhandahålls av Amazon som en del av Amazon Webbservice. Därför behöver du inte oroa dig för vilka AWS-resurser som ska lanseras eller hur du ska hantera dem. Istället måste du lägga koden på Lambda, och den körs.

I AWS Lambda exekveras koden baserat på svaret på händelser i AWS-tjänster som lägg till/ta bort filer i S3-bucket, HTTP-begäran från Amazon API-gateway, etc. Däremot Amazon Lambda kan endast användas för att utföra bakgrundsuppgifter.

AWS Lambda-funktion hjälper dig att fokusera på din kärnprodukt och affärslogik istället för att hantera operativsystemets (OS) åtkomstkontroll, OS-patchning, rätt storlek, provisionering, skalning, etc.

Hur fungerar AWS Lambda?

Följande AWS Lambda-exempel med blockdiagram förklarar hur AWS Lambda fungerar i några enkla steg:

AWS Lambdablockdiagram
AWS Lambdablockdiagram

Steg 1: Ladda först upp din AWS Lambda-kod på valfritt språk som stöds av AWS Lambda. Java, Python, Go och C# är några av de språk som stöds av AWS Lambda-funktion.

Steg 2: Det här är några AWS-tjänster som låter dig trigga AWS Lambda.

Steg 3: AWS Lambda hjälper dig att ladda upp kod och händelseinformationen på vilken den ska utlösas.

Steg 4: Kör AWS Lambda Code när den utlöses av AWS-tjänster:

Steg 5: AWS debiteras endast när AWS lambda-koden körs, och inte på annat sätt.

Detta kommer att hända i följande scenarier:

  • Ladda upp filer i en S3-bucket
  • När HTTP get/post endpoint URL träffas
  • För att lägga till/ändra och ta bort Dynamo DB-tabeller
  • I processen för insamling av dataströmmar
  • Push notification
  • Hosting av hemsida
  • Skicka e -post

Notera: Du bör komma ihåg att du tar betalt för AWS-tjänster endast när AWS Lambda-koden körs, annars behöver du inte betala någonting.

Händelser som utlöser AWS Lambda

Här är händelser som kommer att utlösas när du använder AWS Lambda.

  • Infoga, uppdatera och ta bort data Dynamo DB-tabell
  • Att inkludera push-meddelanden i SNS
  • För att söka efter logghistorik i CloudTrail
  • Inträde i ett S3-objekt
  • DynamoDB kan utlösa AWS Lambda när det finns data som läggs till, ändras och raderas i tabellen.
  • Hjälper dig att schemalägga händelsen för att utföra uppgiften vid regelbundet tidsmönster.
  • Ändringar av objekt i S3-hinkar
  • Aviseringar skickade från Amazon SNS.
  • AWS Lambda kan användas för att bearbeta CloudTrail-loggarna
  • API Gateway låter dig trigga AWS Lambda på GET/POST-metoder.

AWS Lambda Concepts

Funktion:

En funktion är ett program eller ett skript som körs i AWS Lambda. Lambda skickar anropshändelser till din funktion, som bearbetar en händelse och returnerar dess svar.

Driftstider:

Runtime tillåter funktioner på olika språk som körs på samma basexekveringsmiljö. Detta hjälper dig att konfigurera din funktion under körning. Det matchar också ditt valda programmeringsspråk.

Händelsekälla:

En händelsekälla är en AWS-tjänst, som t.ex Amazon SNS, eller en anpassad tjänst. Denna triggerfunktion hjälper dig att utföra dess logik.

Lambdalager:

Lambdalager är en viktig distributionsmekanism för bibliotek, anpassade körtider och andra viktiga funktionsberoenden. Denna AWS-komponent hjälper dig också att hantera din utvecklingsfunktionskod separat från den oföränderliga koden och resurserna som den använder.

Loggströmmar:

Loggström låter dig kommentera din funktionskod med anpassade loggningssatser som hjälper dig att analysera exekveringsflödet och prestanda för dina AWS Lambda-funktioner.

Hur man använder AWS Lambda

Nu kommer vi att lära oss hur man använder AWS Lambda med AWS Lambda exempel:

steg 1) Steg 1) Öppna AWS Lambda URL
Gå till https://aws.amazon.com/lambda/ och Kom igång

Hur man använder AWS Lambda

steg 2) Skapa ett konto
Skapa sedan ett konto eller logga in med ditt befintliga konto

steg 3) Redigera koden och klicka på Kör,
På nästa Lambdasida,

  1. Redigera koden
  2. Klicka på Kör

Hur man använder AWS Lambda

steg 4) Kontrollera utgången
Du kommer att se utdata

Hur man använder AWS Lambda

AWS Lambda VS AWS EC2

Här är några stora skillnader mellan AWS Lambda och EC2.

parametrar AWS Lambda AWS EC2
Definition AWS Lambda är en plattform som en tjänst (PaaS). Det hjälper dig att köra och exekvera din backend-kod. AWS EC2 är en infrastruktur som en tjänst (laaS). Det tillhandahåller virtualiserade datorresurser.
Flexibilitet Erbjuder ingen flexibilitet att logga in för att beräkna instanser. Det låter dig välja ett anpassat operativsystem eller språkkörning. Erbjuder flexibiliteten att välja olika instanser, anpassade operativsystem, säkerhetskorrigeringar och nätverk, etc.
Installationsprocess Du måste välja din miljö där du vill köra koden och trycka in koden i AWS Lambda. För första gången i EC2 måste du välja OS och installera all programvara som krävs och sedan trycka in din kod i EC2.
Miljörestriktioner Det är begränsat till få språk. Inga miljörestriktioner.

AWS Lambda VS AWS Elastic Beanstalk

Här är några stora skillnader mellan AWS Lambda och Elastic Beanstalk.

parametrar AWS elastisk bönstjälk AWS Lambda
Huvuduppgift Distribuera och hantera apparna på AWS Cloud utan att oroa dig för infrastrukturen som kör dessa applikationer. AWS Lambda används för att köra och exekvera din Back-end-kod. Du kan inte använda den för att distribuera en applikation.
Val av AWS-resurser Det ger dig en frihet att välja AWS-resurser; Du kan till exempel välja EC2-instans som är optimal för din applikation. Du kan inte välja AWS-resurser, som en typ av EC2-instans, Lambda erbjuder resurser baserat på din arbetsbelastning.
Typ av system Det är ett statligt system. Det är ett statslöst system.

Användningsfall av AWS Lambda

AWS Lambda används för ett brett spektrum av applikationer som:

  • Hjälper dig för ETL-processen
  • Låter dig utföra filbearbetning i realtid och strömbearbetning i realtid
  • Används för att skapa webbapplikationer
  • Använda i Amazon produkter som Alexa Chatbots och Amazon Echo/Alexa
  • Databehandling (strömningsanalys i realtid)
  • Automatiserade säkerhetskopior av vardagliga uppgifter
  • Skalbara baksidor (mobilappar, många enheter)
  • Hjälper dig att köra backend-logik på serversidan
  • Låter dig filtrera och transformera data

Bästa metoder för lambdafunktion

Här är några bästa praxis för AWS Lambdafunktioner:

  • Använd rätt "timeout".
  • Använd funktionerna för lokal lagring som är 500MB stor i mappen /temp
  • Minimera användningen av startkod som inte är direkt relaterad till bearbetningen av den aktuella händelsen.
  • Du bör använda inbyggd CloudWatch-övervakning av dina Lambda-funktioner för att se och optimera fördröjningstider.

När ska du inte använda AWS Lambda

Följande är situationen där Lambda verkligen inte är ett idealiskt alternativ:

  • Det är inte lämpligt att använda AWS Lambda-programvarupaket eller applikationer som är beroende av underliggande anrop Windows RPC:er
  • Om används för anpassade mjukvaruapplikationer med licensavtal som MS-Office dokumentbehandling, Oracle databaser osv.
  • AWS Lambda bör inte användas för anpassad hårdvaruprocess som GPU-acceleration, hårdvaruaffinitet.

Fördelar med att använda AWS Lambda

Här är fördelar/fördelar med att använda AWS lambda:

  • AWS Lambda är ett mycket flexibelt verktyg att använda
  • Det hjälper dig att ge tillgång till resurser, inklusive VPC:er
  • Författare direkt med WYSIWYG redaktör i konsolen.
  • Du kan använda det som ett plugin för Eclipse och Visual Studio.
  • Eftersom det är en serverlös arkitektur behöver du inte oroa dig för att hantera eller tillhandahålla servrar.
  • Du behöver inte ställa in någon Virtuell maskin.
  • Hjälper utvecklare att köra och exekvera kodens svar på händelser utan att bygga någon infrastruktur.
  • Du behöver bara för beräkningstiden, bara när din kod körs.
  • Du kan övervaka din kodprestanda i realtid genom CloudWatch.
  • Det låter dig köra din kod utan provisionering eller hantera någon annan server
  • Hjälper dig att exekvera koden endast när det behövs
  • Du kan skala den automatiskt för att hantera ett fåtal förfrågningar per dag och till och med stödja mer än tusentals förfrågningar per sekund.
  • AWS Lambda kan konfigureras med hjälp av externa händelsetimer för att utföra schemalagda uppgifter.
  • Lambdafunktionen i AWS bör konfigureras med externa händelser och timers så; den kan användas för schemaläggning.
  • Lambdafunktionerna är tillståndslösa så att den snabbt kan skalas.
  • AWS Lambda är snabb så den kommer att exekvera din kod inom millisekunder.

Begränsningar för AWS Lambda

Här är nackdelarna/nackdelarna med att använda AWS Lambda:

  • AWS Lambda-verktyg är inte lämpligt för små projekt.
  • AWS Lambda förlitar sig helt på AWS för infrastrukturen, så du kan inte installera någon ytterligare programvara om din kod kräver det.
  • Samtidigt utförande är begränsat till 100
  • AWS Lambda var helt beroende av AWS för infrastrukturen; du kan inte installera någon ytterligare programvara om din kod kräver det.
  • Dess minnesvolym kan variera mellan 128 och 1536 MB.
  • Eventbegäran bör inte överstiga 128 KB.
  • Lambda-funktioner hjälper dig att bara skriva sina loggar i CloudWatch. Detta är det enda verktyget som låter dig övervaka eller felsöka dina funktioner.
  • Tidsgränsen för kodexekvering är bara 5 minuter.

Sammanfattning

  • Serverlös är en term som generellt refererar till serverlösa applikationer.
  • AWS Lambda är en sådan serverlös datortjänst. Därför behöver du inte oroa dig för vilka AWS-resurser som ska lanseras eller hur de ska hantera dem.
  • En funktion är ett program eller ett skript som körs i AWS serverlös Lambda.
  • Runtime tillåter funktioner på olika språk som körs på samma basexekveringsmiljö.
  • En händelsekälla är en AWS-tjänst, som t.ex Amazon SNS, eller en anpassad tjänst.
  • Lambdalager är en viktig distributionsmekanism för bibliotek, anpassade körtider och andra viktiga funktionsberoenden.
  • Loggström låter dig kommentera din funktionskod med anpassade loggningssatser som hjälper dig att analysera exekveringsflödet och prestanda för dina Lambda-funktioner.
  • AWS Lambda är en plattform som en tjänst (PaaS). Det hjälper dig att köra och exekvera din backend-kod.
  • AWS EC2 är en infrastruktur som en tjänst (laaS). Det tillhandahåller virtualiserade datorresurser.
  • Distribuera och hantera apparna på AWS Cloud utan att oroa dig för infrastrukturen som kör dessa applikationer.
  • AWS Lambda används för att köra och exekvera din Back-end-kod. Du kan inte använda den för att distribuera en applikation.
  • AWS Lambda hjälper dig för ETL-process.
  • Den bästa praxisen för Lambda-funktionen i AWS är att använda rätt "timeout."
  • Det är inte lämpligt att använda AWS Lambda-programvarupaket eller applikationer som är beroende av underliggande anrop Windows RPC:er
  • AWS Lambda är ett mycket flexibelt verktyg.
  • AWS Lambda-verktyg är inte lämpligt för små projekt.
  • En vanlig händelse som kommer att utlösas när du använder AWS Lambda är Infoga, uppdatera och radera data Dynamo DB-tabell.