Hva er AWS Lambda? Lambda-funksjon med eksempler
⚡ Smart oppsummering
AWS Lambda er en hendelsesdrevet, serverløs databehandlingsplattform fra Amazon Webtjenester som kjører koden din som svar på utløsere, og håndterer automatisk provisjonering, skalering og serveradministrasjon, slik at du kun fokuserer på forretningslogikk.

Før du utforsker AWS Lambda, er det nyttig å forstå hva serverløshet betyr.
Hva er serverløst?
Serverløs er et begrep som vanligvis refererer til serverløse applikasjoner. Serverløse applikasjoner er applikasjoner som ikke trenger noen serverklargjøring og ikke krever at du administrerer servere.
Hva er AWS Lambda?
AWS Lambda er en hendelsesdrevet, serverløs dataplattform levert av Amazon som en del av Amazon Webtjenester. Derfor trenger du ikke å bekymre deg for hvilke AWS-ressurser du skal lansere, eller hvordan du skal administrere dem. I stedet må du legge koden på Lambda, så kjører den.
I AWS Lambda kjøres koden basert på responsen fra hendelser i AWS-tjenester, som å legge til eller slette filer i en S3-bøtte, en HTTP-forespørsel fra Amazon API Gateway og lignende hendelser. Imidlertid Amazon Lambda kan bare brukes til å utføre bakgrunnsoppgaver.
AWS Lambda-funksjonen hjelper deg med å fokusere på kjerneproduktet og forretningslogikken i stedet for å administrere tilgangskontroll for operativsystemet (OS), OS-patching, riktig størrelsesregulering, provisjonering, skalering og så videre.
Hvordan fungerer AWS Lambda?
Følgende AWS Lambda-eksempel med blokkdiagram forklarer hvordan AWS Lambda fungerer i noen få enkle trinn:
Trinn 1: Last først opp AWS Lambda-koden på et hvilket som helst språk som støttes av AWS Lambda. Java, Python, Go og C# er noen av språkene som støttes av AWS Lambda-funksjonen.
Trinn 2: Dette er noen AWS-tjenester som lar deg utløse AWS Lambda.
Trinn 3: AWS Lambda hjelper deg med å laste opp kode og hendelsesdetaljene som den skal utløses på.
Trinn 4: Kjører AWS Lambda-kode når den utløses av AWS-tjenester.
Trinn 5: AWS belaster bare når AWS Lambda-koden kjøres, og ikke ellers.
Dette vil skje i følgende scenarier:
- Last opp filer i en S3-bøtte
- Når et HTTP get/post-endepunkt URL er truffet
- For å legge til, endre og slette Dynamo DB-tabeller
- I ferd med innsamling av datastrømmer
- Push notification
- Hosting av nettside
- Sending på e -post
OBS: Du bør huske at du bare blir belastet for AWS-tjenester når AWS Lambda-koden kjøres, ellers trenger du ikke å betale noe.
Hendelser som utløser AWS Lambda
Her er hendelsene som utløses når du bruker AWS Lambda.
- Sette inn, oppdatere og slette data i en Dynamo DB-tabell
- For å inkludere push-varsler i SNS
- For å søke etter logghistorikk i CloudTrail
- Inngang i et S3-objekt
- DynamoDB kan utløse AWS Lambda når det er lagt til, endret og slettet data i tabellen.
- Hjelper deg med å planlegge hendelsen for å utføre oppgaven på et regelmessig tidspunkt.
- Modifikasjoner på objekter i S3-bøtter
- Varsler sendt fra Amazon SNS.
- AWS Lambda kan brukes til å behandle CloudTrail-loggene.
- API Gateway lar deg utløse AWS Lambda på GET/POST-metoder.
AWS Lambda Concepts
Funksjon: En funksjon er et program eller et skript som kjører i AWS Lambda. Lambda sender påkallingshendelser inn i funksjonen din, som behandler en hendelse og returnerer svaret.
Kjøretider: Runtime tillater funksjoner på forskjellige språk som kjører på samme basiskjøringsmiljø. Dette hjelper deg med å konfigurere funksjonen din i runtime. Den samsvarer også med den valgte programmeringsspråk.
Eventkilde: En hendelseskilde er en AWS-tjeneste, som f.eks Amazon SNS, eller en tilpasset tjeneste. Denne utløseren hjelper funksjonen med å utføre logikken sin.
Lambdalag: Lambdalag er en viktig distribusjonsmekanisme for biblioteker, tilpassede kjøretider og andre viktige funksjonsavhengigheter. Denne AWS-komponenten hjelper deg også med å administrere utviklingsfunksjonskoden din separat fra den uforanderlige koden og ressursene den bruker.
Loggstrømmer: Med loggstrømmen kan du annotere funksjonskoden din med tilpassede loggføringssetninger som hjelper deg med å analysere utførelsesflyten og ytelsen til AWS Lambda-funksjonene dine.
Slik bruker du AWS Lambda
Nå skal vi lære hvordan vi bruker AWS Lambda med et AWS Lambda-eksempel:
Trinn 1) Åpne AWS Lambda URL
Gå til https://aws.amazon.com/lambda/ og Kom i gang.
Trinn 2) Opprett en konto
Deretter oppretter du en konto eller logger inn med din eksisterende konto.
Trinn 3) Rediger koden og klikk på Kjør
På den neste Lambda-siden redigerer du koden og klikker på Kjør.
Trinn 4) Sjekk utgang
Du vil se resultatet.
AWS Lambda VS AWS EC2
Her er noen viktige forskjeller mellom AWS Lambda og EC2.
| Parametre | AWS Lambda | AWS EC2 |
| Definisjon | AWS Lambda er en plattform som en tjeneste (PaaS). Det hjelper deg å kjøre og utføre backend-koden din. | AWS EC2 er en infrastruktur som en tjeneste (IaaS). Den tilbyr virtualiserte dataressurser. |
| Fleksibilitet | Tilbyr ingen fleksibilitet til å logge inn for å beregne instanser. Den lar deg velge et tilpasset operativsystem eller kjøretidsspråk. | Gir fleksibiliteten til å velge en rekke instanser, tilpassede operativsystemer, sikkerhetsoppdateringer og nettverk, osv. |
| Installasjonsprosess | Du må velge miljøet der du vil kjøre koden og sende den til AWS Lambda. | For første gang i EC2, må du velge OS og installere all programvaren som kreves, og deretter trykke koden din i EC2. |
| Miljørestriksjoner | Den er begrenset til noen få språk. | Ingen miljørestriksjoner. |
AWS Lambda VS AWS Elastic Beanstalk
Her er noen viktige forskjeller mellom AWS Lambda og Elastic Beanstalk.
| Parametre | AWS Elastisk Beanstalk | AWS Lambda |
| Hovedoppgave | Distribuer og administrer appene på AWS Cloud uten å bekymre deg for infrastrukturen som kjører disse appene. | AWS Lambda brukes til å kjøre og utføre backend-koden din. Du kan ikke bruke den til å distribuere en applikasjon. |
| Valg av AWS-ressurser | Det gir deg friheten til å velge AWS-ressurser; for eksempel kan du velge en EC2-instans som er optimal i henhold til applikasjonen din. | Du kan ikke velge AWS-ressursene, som en type EC2-instans; Lambda tilbyr ressurser basert på arbeidsmengden din. |
| Type system | Det er et statlig system. | Det er et statsløst system. |
Brukstilfeller av AWS Lambda
AWS Lambda brukes til et bredt spekter av applikasjoner som:
- Hjelper deg med ETL-prosess
- Lar deg utføre sanntids filbehandling og sanntidsstrømbehandling
- Brukes til å lage webapplikasjoner
- Bruk i Amazon produkter som Alexa Chatbots og Amazon Ekko/Alexa
- Databehandling (strømmeanalyse i sanntid)
- Automatiserte sikkerhetskopier av daglige oppgaver
- Skalerbare backend-enheter (mobilapper, IoT-enheter)
- Hjelper deg med å utføre backend-logikk på serversiden
- Lar deg filtrere og transformere data
Beste praksis for lambdafunksjon
Her er noen beste fremgangsmåter for AWS Lambda-funksjoner:
- Bruk riktig "timeout".
- Benytt deg av funksjonene til lokal lagring, som er 500 MB stor i /temp-mappen.
- Minimer bruken av oppstartskode som ikke er direkte relatert til behandling av gjeldende hendelse.
- Du bør bruke innebygd CloudWatch-overvåking av Lambda-funksjonene dine for å se og optimalisere forespørselsforsinkelser.
Når du ikke skal bruke AWS Lambda
Følgende er situasjoner der Lambda absolutt ikke er et ideelt alternativ:
- Det er ikke passende å bruke AWS Lambda for programvarepakker eller applikasjoner som er avhengige av å kalle underliggende Windows RPC-er.
- Hvis den brukes til tilpassede programvareapplikasjoner med lisensavtaler som MS-Office-dokumentbehandling, Oracle databaser osv.
- AWS Lambda bør ikke brukes til tilpassede maskinvareprosesser som GPU-akselerasjon og maskinvareaffinitet.
Fordeler med å bruke AWS Lambda
Her er fordelene/fordelene ved å bruke AWS Lambda:
- AWS Lambda er et svært fleksibelt verktøy å bruke.
- Det hjelper deg med å gi tilgang til ressurser, inkludert VPC-er.
- Forfatter direkte med en WYSIWYG redaktør i konsollen.
- Du kan bruke den som en plugin for Eclipse og Visual Studio.
- Siden det er en serverløs arkitektur, trenger du ikke å bekymre deg for å administrere eller klargjøre servere.
- Du trenger ikke sette opp noen Virtuell maskin.
- Hjelper utviklere å kjøre og utføre kodens svar på hendelser uten å bygge noen infrastruktur.
- Du trenger bare å betale for beregningstiden det tar, kun når koden din kjører.
- Du kan overvåke kodeytelsen din i sanntid gjennom CloudWatch.
- Det lar deg kjøre koden din uten å klargjøre eller administrere noen annen server.
- Hjelper deg med å kjøre koden bare når det er nødvendig.
- Du kan skalere den automatisk for å håndtere noen få forespørsler per dag og til og med støtte mer enn tusenvis av forespørsler per sekund.
- AWS Lambda kan konfigureres ved hjelp av eksterne hendelsestidtakere for å utføre planlagte oppgaver.
- Lambda-funksjonen i AWS bør konfigureres med eksterne hendelser og tidtakere slik at den kan brukes til planlegging.
- Lambda-funksjoner er tilstandsløse slik at de kan skaleres raskt.
- AWS Lambda er rask, så den vil kjøre koden din innen millisekunder.
Begrensninger for AWS Lambda
Her er ulempene/ulempene ved å bruke AWS Lambda:
- AWS Lambda-verktøy er ikke egnet for små prosjekter.
- AWS Lambda er helt avhengig av AWS for infrastrukturen, så du kan ikke installere noen tilleggsprogramvare hvis koden din krever det.
- Samtidig utførelse har en standardgrense på 1,000 per region, som kan økes på forespørsel.
- Minnevolumet kan variere mellom 128 MB og 10 240 MB.
- Eventforespørsel bør ikke overstige 128 KB.
- Lambda-funksjoner hjelper deg å skrive loggene deres kun i CloudWatch. Dette er det eneste verktøyet som lar deg overvåke eller feilsøke funksjonene dine.
- Tidsavbruddet for kodekjøring er begrenset til 15 minutter.




