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.

  • ☁️ Serverlös modell: AWS Lambda kör kod utan att provisionera eller hantera servrar, vilket eliminerar behovet av patchning, skalning och kapacitetsplanering för operativsystemet.
  • Händelsedriven exekvering: Funktioner som utlöses från AWS-tjänster som S3, DynamoDB, API-gateway och SNS, som bara körs när en händelse inträffar.
  • 🧩 Språkstöd: Lambda stöder Node.js, Python, Java, Go, C# och Ruby, plus anpassade körtider för andra språk.
  • 💰 Betala per användning: Billgäller endast medan kod exekveras, mätt i millisekunder, med en permanent månatlig gratisnivå på en miljon förfrågningar.
  • 🛠️ Kärnbegrepp: Funktioner, körtider, händelsekällor, lager och loggströmmar definierar hur Lambda kör och hanterar kod.
  • 🤖 AI-hjälp: GitHub Copilot och Amazon Q genererar Lambda-kod, medan Lambda orkestrerar generativ AI-inferens genom Amazon Berggrund.

Vad är AWS Lambda

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:

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-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.

Hur man använder AWS Lambda

Steg 2) Skapa ett konto

Skapa sedan ett konto eller logga in med ditt befintliga konto.

Hur man använder AWS Lambda

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.

Hur man använder AWS Lambda

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.

Vanliga frågor

AWS Lambda har inbyggt stöd för Node.js, Python, Java, Go, C#, PowerShell och Ruby. Ett Runtime API och stöd för containeravbildningar låter dig köra nästan vilket annat språk som helst, så team är sällan begränsade av sin föredragna stack.

AWS Lambda inkluderar en permanent gratisnivå på en miljon förfrågningar och 400 000 GB-sekunder beräkningstid varje månad. Utöver det betalar du bara för förfrågningar och den beräkningstid som din kod faktiskt använder, fakturerat per millisekund.

En kallstart är den korta fördröjningen när Lambda initierar en ny exekveringsmiljö för en funktion som har varit inaktiv. Du kan minska den med provisionerad samtidighet, mindre paket eller SnapStart för Java funktioner.

Ja. Förutom att ladda upp ett ZIP-arkiv låter Lambda dig paketera en funktion som en containeravbildning på upp till 10 GB. Detta passar större beroenden och maskininlärningsbibliotek samtidigt som det hållerping samma händelsedrivna, serverlösa exekveringsmodell.

Lambda kör korta, händelsestyrda funktioner med automatisk skalning och fakturering per millisekund. AWS Fargate kör längre containerbaserade arbetsbelastningar utan att hantera servrar. Välj Lambda för snabba händelsesvar och Fargate för stabila, långvariga containeruppgifter.

Ja. Lambda driver vanligtvis AI-applikationer genom att köra lätt inferens och orkestrera anrop till tjänster som Amazon Bedrock och SageMaker. Stöd för containeravbildningar hjälper till att paketera maskininlärningsbibliotek, medan Lambda hanterar skalning av den generativa AI-pipelinen.

Ja. GitHub Copilot skriver hanterarfunktioner från en kommentar eller ett namn, medan Amazon Q Developer lägger till AWS-anpassad hjälp för IAM-policyer, CloudFormation och SDK-anrop, vilket snabbar upp serverlös utveckling.

Ge varje funktion en IAM-roll med lägsta privilegium, lagra hemligheter i krypterade miljövariabler eller Secrets Manager och placera känsliga funktioner i en VPC. CloudWatch och CloudTrail loggar sedan aktivitet för övervakning och granskning.

Sammanfatta detta inlägg med: