Innan AWS Lambda-funktion, låt oss förstå:
Vad är Serverless?
Serverless är en term som i allmänhet avser serverlösa applikationer. Serverlösa applikationer är sådana som inte behöver serverservering 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 Web Services. Därför behöver du inte oroa dig för vilka AWS-resurser som ska startas, eller hur kommer du att hantera dem. Istället måste du lägga koden på Lambda, och den körs.
I AWS Lambda körs koden baserat på svaret från händelser i AWS-tjänster som att lägga till / ta bort filer i S3-hink, HTTP-begäran från Amazon API-gateway, etc. Amazon Lambda kan dock 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 operativsystems (OS) åtkomstkontroll, OS-patchning, högerstorlek, provisionering, skalning etc.
I denna AWS Lambda-handledning för nybörjare lär du dig:
- Hur fungerar AWS Lambda?
- Händelser som utlöser AWS Lambda
- AWS Lambda Concepts
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastic Beanstalk
- Använd fall av AWS Lambda
- Bästa praxis för Lambda-funktionen
- När ska man inte använda AWS Lambda
- Fördelar med att använda AWS Lambda
- Begränsningar av AWS Lambda
Hur fungerar AWS Lambda?
Följande AWS Lambda-exempel med blockdiagram förklarar hur AWS Lambda fungerar i några enkla steg:
Steg 1: Ladda först upp din AWS Lambda-kod på vilket språk som helst som stöds av AWS Lambda. Java, Python, Go och C # är några av de språk som stöds av AWS Lambda-funktionen.
Steg 2: Det här är några AWS-tjänster som låter dig utlösa AWS Lambda.
Steg 3: AWS Lambda hjälper dig att ladda upp kod och händelsedetaljer som den ska utlösas på.
Steg 4: Kör AWS Lambda-kod när den utlöses av AWS-tjänster:
Steg 5: AWS debiteras endast när AWS-lambdakoden körs, och inte annars.
Detta händer i följande scenarier:
- Ladda upp filer i en S3-hink
- När HTTP get / post endpoint URL träffas
- För att lägga till / ändra och ta bort Dynamo DB-tabeller
- Under insamlingen av dataströmmar
- Push-meddelande
- Värd för webbplatsen
- Skicka e-post
Obs! Du bör komma ihåg att du endast debiterar för AWS-tjänster 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 utlöses när du använder AWS Lambda.
- Infoga, uppdatera och ta bort Dynamo DB-tabell
- Att inkludera push-aviseringar 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 tillagda, modifierade och raderade i tabellen.
- Hjälper dig att schemalägga händelsen för att utföra uppgiften vid ordinarie tidsmönster.
- Ändringar av objekt i S3-skopor
- Meddelanden skickade från Amazon SNS.
- AWS Lambda kan användas för att bearbeta CloudTrail-loggarna
- API Gateway låter dig utlösa AWS Lambda på GET / POST-metoder.
AWS Lambda Concepts
Fungera:
En funktion är ett program eller ett skript som körs i AWS Lambda. Lambda skickar anropshändelser till din funktion, som behandlar en händelse och returnerar sitt svar.
Driftstider:
Runtime tillåter funktioner på olika språk som körs på samma baskörningsmiljö. 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, till exempel Amazon SNS, eller en anpassad tjänst. Denna utlösningsfunktion hjälper dig att köra dess logik.
Lambda lager:
Lambda-lager är en viktig distributionsmekanism för bibliotek, anpassade driftstider och andra viktiga funktionsberoende. Denna AWS-komponent hjälper dig också att hantera din utvecklingsfunktionskod separat från den oförändrade koden och de resurser som den använder.
Loggströmmar:
Loggström låter dig kommentera din funktionskod med anpassade loggningsuttalanden som hjälper dig att analysera exekveringsflödet och prestanda för dina AWS Lambda-funktioner.
Hur man använder AWS Lambda
Nu lär vi oss hur man använder AWS Lambda med AWS Lambda-exempel:
Steg 1 ) Gå till https://aws.amazon.com/lambda/ och kom igång
Steg 2 ) Skapa ett konto eller logga in med ditt befintliga konto
Steg 3 ) På nästa Lambda-sida,
- Redigera koden
- Klicka på Kör
Steg 4 ) Du ser utdata
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 köra din backend-kod. | AWS EC2 är en infrastruktur som en tjänst (laaS). Det ger 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åkdrift. | Erbjuder flexibiliteten att välja olika instanser, anpassade operativsystem, säkerhetsuppdateringar 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 operativsystem och installera all programvara som krävs och sedan trycka 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önstång | AWS Lambda |
Huvuduppgift | Distribuera och hantera apparna i AWS Cloud utan att oroa dig för infrastrukturen som kör dessa applikationer. | AWS Lambda används för att köra och köra din Back-end-kod. Du kan inte använda den för att distribuera en applikation. |
Val av AWS-resurser | Det ger dig frihet att välja AWS-resurser; Du kan till exempel välja EC2-instans som är optimal enligt din applikation. | Du kan inte välja AWS-resurser, som en typ av EC2-instans, erbjuder Lambda resurser baserat på din arbetsbelastning. |
Typ av system | Det är ett statligt system. | Det är ett statslöst system. |
Använd fall 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 filbehandling i realtid och strömbehandling i realtid
- Används för att skapa webbapplikationer
- Använd i Amazon-produkter som Alexa Chatbots och Amazon Echo / Alexa
- Databehandling (realtidsströmningsanalys)
- Automatiserade säkerhetskopior av vardagliga uppgifter
- Skalbara bakändar (mobilappar, loT-enheter)
- Hjälper dig att köra backendlogik på serversidan
- Låter dig filtrera och omvandla data
Bästa praxis för Lambda-funktionen
Här är några bästa metoder för AWS Lambda-funktioner:
- Använd rätt "timeout".
- Använd funktionerna för lokal lagring som är 500 MB i storlek / temp-mappen
- Minimera användningen av startkod som inte är direkt relaterad till bearbetning av den aktuella händelsen.
- Du bör använda inbyggd CloudWatch-övervakning av dina Lambda-funktioner för att visa och optimera fördröjningar.
När ska man 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-mjukvarupaket eller applikationer som är beroende av att anropa underliggande Windows RPC
- If används för anpassade program med licensavtal som MS-Office-dokumentbehandling, Oracle-databaser etc.
- AWS Lambda ska 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
- Författare direkt med WYSIWYG-redigeraren i konsolen.
- Du kan använda den som ett plugin för Eclipse och Visual Studio.
- Eftersom det är serverlös arkitektur behöver du inte oroa dig för att hantera eller tillhandahålla servrar.
- Du behöver inte konfigurera någon virtuell maskin.
- Hjälper utvecklare att köra och utföra kodens svar på händelser utan att bygga någon infrastruktur.
- Du behöver bara för den beräknade tiden det tar, bara när din kod körs.
- Du kan övervaka din kodprestanda i realtid via CloudWatch.
- Det låter dig köra din kod utan provisionering eller att hantera någon annan server
- Hjälper dig att köra koden endast vid behov
- Du kan skala det automatiskt för att hantera några 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ändelsetimers för att utföra schemalagda uppgifter.
- Lambda-funktionen i AWS bör konfigureras med extern händelse och timers så; den kan användas för schemaläggning.
- Lambda-funktioner är statslösa så att den kan skalas snabbt.
- AWS Lambda är snabb så att den kommer att köra din kod inom millisekunder.
Begränsningar av 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 är helt beroende av AWS för infrastrukturen, så du kan inte installera 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ågot extra program om din kod kräver det.
- Minnesvolymen kan variera mellan 128 och 1536 MB.
- Eventbegäran bör inte överstiga 128 kB.
- Lambdafunktioner 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.
- Dess timeout för exekvering av kod är bara 5 minuter.
Sammanfattning
- Serverless är en term som i allmänhet avser serverlösa applikationer.
- AWS Lambda är en sådan serverlös beräkningstjänst. Därför behöver du inte oroa dig för vilka AWS-resurser som ska startas eller hur de kommer att hantera dem.
- En funktion är ett program eller ett skript som körs i AWS serverfri Lambda.
- Runtime tillåter funktioner på olika språk som körs på samma baskörningsmiljö.
- En händelsekälla är en AWS-tjänst, till exempel Amazon SNS, eller en anpassad tjänst.
- Lambda-lager är en viktig distributionsmekanism för bibliotek, anpassade driftstider och andra viktiga funktionsberoende.
- Loggström låter dig kommentera din funktionskod med anpassade loggningsuttalanden som hjälper dig att analysera körflö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 köra din backend-kod.
- AWS EC2 är en infrastruktur som en tjänst (laaS). Det ger virtualiserade datorresurser.
- Distribuera och hantera apparna i AWS Cloud utan att oroa dig för infrastrukturen som kör dessa applikationer.
- AWS Lambda används för att köra och köra din Back-end-kod. Du kan inte använda den för att distribuera en applikation.
- AWS Lambda hjälper dig för ETL-processen.
- Den bästa praxis för Lambda-funktionen i AWS är att använda rätt "timeout".
- Det är inte lämpligt att använda AWS Lambda-mjukvarupaket eller applikationer som är beroende av att anropa underliggande Windows RPC
- AWS Lambda är ett mycket flexibelt verktyg.
- AWS Lambda-verktyg är inte lämpligt för små projekt.
- En vanlig händelse som utlöses när du använder AWS Lambda är Infoga, uppdatera och ta bort data Dynamo DB-tabell.