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.

  • ☁️ Serverløs modell: AWS Lambda kjører kode uten å klargjøre eller administrere servere, og fjerner dermed behovet for oppdatering av operativsystemet, skalering og kapasitetsplanlegging.
  • Hendelsesdrevet utførelse: Funksjoner utløses fra AWS-tjenester som S3, DynamoDB, API-gateway og SNS, som bare kjører når en hendelse inntreffer.
  • 🧩 Språkstøtte: Lambda støtter Node.js, Python, Java, Go, C# og Ruby, pluss tilpassede kjøretider for andre språk.
  • ???? Betal per bruk: Billgjelder bare mens kode kjøres, målt i millisekunder, med et permanent månedlig gratisnivå på én million forespørsler.
  • 🛠️ Kjernekonsepter: Funksjoner, kjøretider, hendelseskilder, lag og loggstrømmer definerer hvordan Lambda kjører og administrerer kode.
  • 🤖 AI-hjelp: GitHub Copilot og Amazon Q genererer Lambda-kode, mens Lambda orkestrerer generativ AI-inferens gjennom Amazon Berggrunn.

Hva er AWS Lambda

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:

AWS Lambdablokkdiagram

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.

Slik bruker du AWS Lambda

Trinn 2) Opprett en konto

Deretter oppretter du en konto eller logger inn med din eksisterende konto.

Slik bruker du AWS Lambda

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.

Slik bruker du AWS Lambda

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.

Spørsmål og svar

AWS Lambda støtter Node.js direkte, Python, Java, Go, C#, PowerShell og Ruby. Et Runtime API og støtte for containeravbildninger lar deg kjøre nesten alle andre språk, slik at team sjelden er begrenset av sin foretrukne stack.

AWS Lambda inkluderer et permanent gratis nivå på én million forespørsler og 400 000 GB-sekunder med beregning hver måned. Utover det betaler du bare for forespørsler og beregningstiden koden din faktisk bruker, fakturert per millisekund.

En kaldstart er den korte forsinkelsen når Lambda initialiserer et nytt utførelsesmiljø for en funksjon som har vært inaktiv. Du kan redusere den med klargjort samtidighet, mindre pakker eller SnapStart for Java funksjoner.

Ja. I tillegg til å laste opp et ZIP-arkiv, lar Lambda deg pakke en funksjon som et containerbilde på opptil 10 GB. Dette passer for større avhengigheter og maskinlæringsbiblioteker, samtidig som det holderping den samme hendelsesdrevne, serverløse utførelsesmodellen.

Lambda kjører korte, hendelsesdrevne funksjoner med automatisk skalering og fakturering per millisekund. AWS Fargate kjører lengre containeriserte arbeidsbelastninger uten å administrere servere. Velg Lambda for raske hendelsesresponser og Fargate for stabile, langvarige containeroppgaver.

Ja. Lambda driver vanligvis AI-applikasjoner ved å kjøre lettvekts inferens og orkestrere kall til tjenester som Amazon Bedrock og SageMaker. Støtte for containerbilder hjelper med å pakke maskinlæringsbiblioteker, mens Lambda håndterer skalering av den generative AI-pipelinen.

Ja. GitHub Copilot skriver håndteringsfunksjoner fra en kommentar eller et navn, mens Amazon Q Developer legger til AWS-bevisst hjelp for IAM-policyer, CloudFormation og SDK-kall, noe som fremskynder serverløs utvikling.

Gi hver funksjon en IAM-rolle med minste rettigheter, lagre hemmeligheter i krypterte miljøvariabler eller Secrets Manager, og plasser sensitive funksjoner i en VPC. CloudWatch og CloudTrail logger deretter aktivitet for overvåking og revisjon.

Oppsummer dette innlegget med: