Hva er AWS Lambda? Lambda-funksjon med eksempler

Før AWS Lambda-funksjon, la oss forstå:

Hva er serverløst?

Serverløs er et begrep som vanligvis refererer til serverløse applikasjoner. Serverløse applikasjoner er de som ikke trenger noen servertilførsel og ikke krever å administrere 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 sette koden på Lambda, og den kjører.

I AWS Lambda kjøres koden basert på responsen fra hendelser i AWS-tjenester som legg til/slett filer i S3-bøtte, HTTP-forespørsel fra Amazon API-gateway osv. Men Amazon Lambda kan bare brukes til å utføre bakgrunnsoppgaver.

AWS Lambda-funksjon hjelper deg med å fokusere på kjerneproduktet og forretningslogikken i stedet for å administrere operativsystemets (OS) tilgangskontroll, OS-patching, riktig størrelse, klargjøring, skalering, etc.

Hvordan fungerer AWS Lambda?

Følgende AWS Lambda-eksempel med blokkdiagram forklarer hvordan AWS Lambda fungerer i noen få enkle trinn:

AWS Lambdablokkdiagram
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-funksjon.

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: Utfører AWS Lambda Code når den utløses av AWS-tjenester:

Trinn 5: AWS lader kun 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 HTTP get/post endpoint 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 tar betalt for AWS-tjenester kun når AWS Lambda-koden kjøres, ellers trenger du ikke betale noe.

Hendelser som utløser AWS Lambda

Her er hendelser som vil bli utløst når du bruker AWS Lambda.

  • Sette inn, oppdatere og slette data 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 arrangementet for å utføre oppgaven til vanlig tidsmønster.
  • 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 baseutførelsesmiljø. Dette hjelper deg med å konfigurere funksjonen din under kjøretid. Det samsvarer også med det du har valgt programmeringsspråk.

Eventkilde:

En hendelseskilde er en AWS-tjeneste, som f.eks Amazon SNS, eller en tilpasset tjeneste. Denne triggerfunksjonen hjelper deg med å utføre logikken.

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:

Loggstrøm lar deg kommentere funksjonskoden din med tilpassede loggsetninger 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 du bruker AWS Lambda med AWS Lambda eksempel:

Trinn 1) 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 på med din eksisterende konto

Trinn 3) Rediger koden og klikk Kjør,
På neste Lambda-side,

  1. Rediger koden
  2. Klikk på Kjør

Slik bruker du AWS Lambda

Trinn 4) Sjekk utgang
Du vil se utdata

Slik bruker du AWS Lambda

AWS Lambda VS AWS EC2

Her er noen store 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 (laaS). Det gir virtualiserte dataressurser.
Fleksibilitet Tilbyr ingen fleksibilitet til å logge på for å beregne forekomster. Den lar deg velge et tilpasset operativsystem eller språkkjøring. Tilbyr fleksibilitet til å velge en rekke instanser, tilpassede operativsystemer, sikkerhetsoppdateringer og nettverk, etc.
Installasjonsprosess Du må velge miljøet der du vil kjøre koden og skyve koden inn i 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 Det er begrenset til få språk. Ingen miljørestriksjoner.

AWS Lambda VS AWS Elastisk bønnestengel

Her er noen store forskjeller mellom AWS Lambda og Elastic Beanstalk.

Parametre AWS elastisk bønnestengel 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 Back-end-koden din. Du kan ikke bruke den til å distribuere en applikasjon.
Valg av AWS-ressurser Det gir deg en frihet til å velge AWS-ressurser; For eksempel kan du velge EC2-instans som er optimal i henhold til din applikasjon. 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 bruksområder som:

  • Hjelper deg for ETL-prosessen
  • 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 gjøremål
  • Skalerbare baksider (mobilapper, mange 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 Lambdafunksjoner:

  • Bruk riktig "timeout".
  • Bruk funksjonene til lokal lagring som er 500MB i størrelse i /temp-mappen
  • Minimering av bruk 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 situasjonen der Lambda absolutt ikke er et ideelt alternativ:

  • Det er ikke hensiktsmessig å bruke AWS Lambda-programvarepakker eller -applikasjoner som er avhengige av underliggende anrop Windows RPC-er
  • Hvis brukes til tilpassede programvareapplikasjoner med lisensavtaler som MS-Office dokumentbehandling, Oracle databaser osv.
  • AWS Lambda bør ikke brukes til tilpasset maskinvareprosess som GPU-akselerasjon, maskinvaretilknytning.

Fordeler med å bruke AWS Lambda

Her er fordeler/fordeler med å bruke AWS lambda:

  • AWS Lambda er et svært fleksibelt verktøy å bruke
  • Det hjelper deg å gi tilgang til ressurser, inkludert VPCer
  • Forfatter direkte med WYSIWYG redaktør i konsollen.
  • Du kan bruke den som en plugin for Eclipse og Visual Studio.
  • Siden det er 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 å gjøre det for beregningstiden det tar, bare når koden kjører.
  • Du kan overvåke kodeytelsen din i sanntid gjennom CloudWatch.
  • Den lar deg kjøre koden din uten klargjøring 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.
  • Lambdafunksjonen i AWS bør konfigureres med ekstern hendelse og tidtakere så; den kan brukes til planlegging.
  • Lambdafunksjonene er statsløse slik at den 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 tilleggsprogramvare hvis koden din krever det.
  • Samtidig utførelse er begrenset til 100
  • AWS Lambda var helt avhengig av AWS for infrastrukturen; du kan ikke installere noe ekstra programvare hvis koden krever det.
  • Minnevolumet kan variere mellom 128 og 1536 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 kodeutførelse er bare 5 minutter.

Sammendrag

  • Serverløs er et begrep som vanligvis refererer til serverløse applikasjoner.
  • AWS Lambda er en slik serverløs datatjeneste. Derfor trenger du ikke bekymre deg for hvilke AWS-ressurser du skal lansere, eller hvordan de skal administrere dem.
  • En funksjon er et program eller et skript som kjører i AWS serverløs Lambda.
  • Runtime tillater funksjoner på forskjellige språk som kjører på samme baseutførelsesmiljø.
  • En hendelseskilde er en AWS-tjeneste, som f.eks Amazon SNS, eller en tilpasset tjeneste.
  • Lambdalag er en viktig distribusjonsmekanisme for biblioteker, tilpassede kjøretider og andre viktige funksjonsavhengigheter.
  • Loggstrøm lar deg kommentere funksjonskoden din med tilpassede loggsetninger som hjelper deg med å analysere utførelsesflyten og ytelsen til Lambda-funksjonene dine.
  • 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 (laaS). Det gir virtualiserte dataressurser.
  • 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 Back-end-koden din. Du kan ikke bruke den til å distribuere en applikasjon.
  • AWS Lambda hjelper deg med ETL-prosess.
  • Den beste praksisen med Lambda-funksjonen i AWS er ​​å bruke riktig "timeout."
  • Det er ikke hensiktsmessig å bruke AWS Lambda-programvarepakker eller -applikasjoner som er avhengige av underliggende anrop Windows RPC-er
  • AWS Lambda er et svært fleksibelt verktøy.
  • AWS Lambda-verktøy er ikke egnet for små prosjekter.
  • En vanlig hendelse som vil utløses når du bruker AWS Lambda er Sett inn, oppdatering og sletting av data Dynamo DB-tabell.

Oppsummer dette innlegget med: