Vad är AWS Lambda? Lambdafunktion med exempel
⚡ Smart sammanfattning
AWS Lambda är en händelsedriven, serverlös databehandlingsplattform från Amazon Webbtjänster som kör din kod som svar på utlösare, och automatiskt hanterar provisionering, skalning och serverhantering så att du bara kan fokusera på affärslogik.
Innan man utforskar AWS Lambda är det bra att förstå vad serverlös innebär.
Vad är serverlöst?
Serverlös är en term som generellt hänvisar till serverlösa applikationer. Serverlösa applikationer är sådana som inte behöver någon serverprovisionering och inte kräver att du hanterar servrar.
Vad är AWS Lambda?
AWS Lambda är en händelsedriven, serverlös datorplattform som tillhandahålls av Amazon som en del av Amazon Webbtjänster. Därför behöver du inte oroa dig för vilka AWS-resurser du ska lansera, eller hur du ska hantera dem. Istället behöver du lägga koden på Lambda, så körs den.
I AWS Lambda exekveras koden baserat på svaret från händelser i AWS-tjänster, såsom att lägga till eller ta bort filer i en S3-bucket, en HTTP-förfrågan från Amazon API Gateway och liknande händelser. Emellertid, Amazon Lambda kan endast användas för att utföra bakgrundsuppgifter.
AWS Lambda-funktionen hjälper dig att fokusera på din kärnprodukt och affärslogik istället för att hantera åtkomstkontroll för operativsystem (OS), patchning av operativsystem, rätt storlek, provisionering, skalning och så vidare.
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å 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-funktionen.
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-kod när den utlöses av AWS-tjänster.
Steg 5: AWS debiterar endast när AWS Lambda-koden körs, och inte annars.
Detta kommer att hända i följande scenarier:
- Ladda upp filer i en S3-bucket
- När en HTTP get/post-slutpunkt URL är träffad
- 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
Obs: Du bör komma ihåg att du bara debiteras för AWS-tjänster när AWS Lambda-koden körs, annars behöver du inte betala något.
Händelser som utlöser AWS Lambda
Här är händelserna som utlöses när du använder AWS Lambda.
- Infoga, uppdatera och ta bort data i en 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 enligt ett 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 i olika språk som körs i samma basmiljö. Detta hjälper dig att konfigurera din funktion i runtime. Det matchar också dina 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 utlösare hjälper funktionen att utföra sin 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: Med loggströmmen kan du kommentera din funktionskod med anpassade loggsatser som hjälper dig att analysera exekveringsflödet och prestandan för dina AWS Lambda-funktioner.
Hur man använder AWS Lambda
Nu ska vi lära oss hur man använder AWS Lambda med ett AWS Lambda-exempel:
Steg 1) Öppna AWS Lambda URL
Gå till https://aws.amazon.com/lambda/ och Kom igång.
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 Lambda-sida redigerar du koden och klickar på Kör.
Steg 4) Kontrollera utgången
Du kommer att se resultatet.
AWS Lambda VS AWS EC2
Här är några viktiga skillnader mellan AWS Lambda och EC2.
| Driftparametrar | 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 (IaaS). Den 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 en mängd olika instanser, anpassade operativsystem, säkerhetsuppdateringar och nätverk etc. |
| Installationsprocess | Du måste välja den miljö där du vill köra koden och skicka den till 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 | Den är begränsad till ett fåtal språk. | Inga miljörestriktioner. |
AWS Lambda VS AWS Elastic Beanstalk
Här är några viktiga skillnader mellan AWS Lambda och Elastic Beanstalk.
| Driftparametrar | AWS elastisk Beanstalk | 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 backend-kod. Du kan inte använda den för att driftsätta en applikation. |
| Val av AWS-resurser | Det ger dig friheten att välja AWS-resurser; du kan till exempel välja en EC2-instans som är optimal enligt 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 med ETL-process
- 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)
- Automatiska säkerhetskopior av dagliga uppgifter
- Skalbara backends (mobilappar, IoT-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 Lambda-funktioner:
- Använd rätt "timeout".
- Använd funktionerna för lokal lagring som är 500 MB 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 situationer där Lambda säkerligen inte är ett idealiskt alternativ:
- Det är inte lämpligt att använda AWS Lambda för programvarupaket eller applikationer som förlitar sig på att anropa underliggande Windows RPC:er.
- Om den används för anpassade programvaruapplikationer med licensavtal som MS-Office-dokumentbehandling, Oracle databaser osv.
- AWS Lambda bör inte användas för anpassade hårdvaruprocesser som GPU-acceleration och hårdvaruaffinitet.
Fördelar med att använda AWS Lambda
Här är fördelarna/nyttorna med att använda AWS Lambda:
- AWS Lambda är ett mycket flexibelt verktyg att använda.
- Det hjälper dig att bevilja åtkomst till resurser, inklusive VPC:er.
- Författare direkt med en 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 provisionera 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 betala för den beräkningstid det tar, endast när din kod körs.
- Du kan övervaka din kodprestanda i realtid genom CloudWatch.
- Det låter dig köra din kod utan att provisionera eller hantera någon annan server.
- Hjälper dig att köra 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.
- Lambda-funktionen i AWS bör konfigureras med externa händelser och timers så att den kan användas för schemaläggning.
- Lambda-funktioner är tillståndslösa så att de kan skalas snabbt.
- 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.
- Samtidig körning har en standardgräns på 1 000 per region, vilken kan ökas på begäran.
- Dess minnesvolym kan variera mellan 128 MB och 10 240 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.
- Dess timeout för kodkörning är begränsad till 15 minuter.





