Hva er AWS Lambda? Lambda-funksjon med eksempler

Innholdsfortegnelse:

Anonim

La oss forstå før AWS Lambda-funksjon:

Hva er Serverless?

Serverless er et begrep som vanligvis refererer til serverløse applikasjoner. Serverløse applikasjoner er de som ikke trenger noen servertilførsel og ikke trenger å administrere servere.

Hva er AWS Lambda?

AWS Lambda er en hendelsesdrevet, serverløs databehandlingsplattform levert av Amazon som en del av Amazon Web Services. Derfor trenger du ikke bekymre deg for hvilke AWS-ressurser som skal lanseres, eller hvordan vil du administrere dem. I stedet må du legge koden på Lambda, og den kjører.

I AWS Lambda kjøres koden basert på responsen til hendelser i AWS-tjenester, for eksempel legge til / slette filer i S3-bøtte, HTTP-forespørsel fra Amazon API-gateway, etc. Amazon Lambda kan imidlertid bare brukes til å utføre bakgrunnsoppgaver.

AWS Lambda-funksjonen hjelper deg med å fokusere på kjerneproduktet og forretningslogikken din i stedet for å administrere operativsystem (OS) tilgangskontroll, OS-oppdatering, høyre størrelse, klargjøring, skalering, etc.

I denne AWS Lambda-opplæringen for nybegynnere vil du lære:

  • Hvordan fungerer AWS Lambda?
  • Arrangementer som utløser AWS Lambda
  • AWS Lambda Concepts
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Bruk tilfeller av AWS Lambda
  • Beste fremgangsmåter for Lambda-funksjon
  • Når skal du ikke bruke AWS Lambda
  • Fordeler med å bruke AWS Lambda
  • Begrensninger av AWS Lambda

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å 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 hendelsesdetaljer som den skal utløses på.

Trinn 4: Utfører AWS Lambda-kode når den utløses av AWS-tjenester:

Trinn 5: AWS belaster bare når AWS lambda-kode 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 treffes
  • For å legge til / endre og slette Dynamo DB-tabeller
  • I ferd med innsamling av datastrømmer
  • Push-varsel
  • Hosting av nettstedet
  • Send e-post

Merk: Du bør huske at du bare vil betale for AWS-tjenester når AWS Lambda-koden kjøres, ellers trenger du ikke å betale noe.

Arrangementer som utløser AWS Lambda

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

  • Sett inn, oppdater og slett data Dynamo DB-tabellen
  • Å inkludere pushvarsler i SNS
  • For å søke etter logghistorikk i CloudTrail
  • Oppføring 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 innkallingshendelser til funksjonen din, som behandler en hendelse og returnerer svaret.

Kjøretid:

Runtime tillater funksjoner på forskjellige språk som kjører på samme baseutførelsesmiljø. Dette hjelper deg med å konfigurere funksjonen din i løpetid. Det samsvarer også med det valgte programmeringsspråket.

Arrangementskilde:

En hendelseskilde er en AWS-tjeneste, for eksempel Amazon SNS, eller en tilpasset tjeneste. Denne utløserfunksjonen hjelper deg med å utføre logikken.

Lambda-lag:

Lambda-lag 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 uendrede koden og ressursene den bruker.

Logg strømmer:

Loggstrøm lar deg kommentere funksjonskoden din med egendefinerte loggsetninger som hjelper deg med å analysere kjøringsflyten og ytelsen til AWS Lambda-funksjonene.

Hvordan bruke AWS Lambda

Nå vil vi lære hvordan du bruker AWS Lambda med AWS Lambda-eksempel:

Trinn 1 ) Gå til https://aws.amazon.com/lambda/ og kom i gang

Trinn 2 ) Opprett en konto eller logg på med din eksisterende konto

Trinn 3 ) I neste Lambda-side,

  1. Rediger koden
  2. Klikk Kjør

Trinn 4 ) Du vil se utdata

AWS Lambda VS AWS EC2

Her er noen store forskjeller mellom AWS Lambda og EC2.

Parametere AWS Lambda AWS EC2
Definisjon AWS Lambda er en plattform som en tjeneste (PaaS). Det hjelper deg å kjøre og utføre backend-koden. AWS EC2 er en infrastruktur som en tjeneste (laaS). Det gir virtualiserte databehandlingsressurser.
Fleksibilitet Tilbyr ikke noen fleksibilitet til å logge på for å beregne forekomster. Det lar deg velge et tilpasset operativsystem eller språkkjøring. Tilbyr fleksibilitet til å velge forskjellige forekomster, tilpassede operativsystemer, sikkerhetsoppdateringer og nettverk osv.
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 operativsystemet og installere all nødvendig programvare og deretter skyve koden din inn i EC2.
Miljøbegrensninger Det er begrenset til få språk. Ingen miljørestriksjoner.

AWS Lambda VS AWS Elastic Beanstalk

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

Parametere AWS elastisk bønnestengel AWS Lambda
Hovedoppgave Distribuer og administrer appene på AWS Cloud uten å bekymre deg for infrastrukturen som kjører disse applikasjonene. AWS Lambda brukes til å kjøre og utføre Back-end-koden. Du kan ikke bruke den til å distribuere et program.
Valg av AWS-ressurser Det gir deg frihet til å velge AWS-ressurser; For eksempel kan du velge EC2-forekomst som er optimal i henhold til applikasjonen din. Du kan ikke velge AWS-ressurser, som en type EC2-forekomst, tilbyr Lambda ressurser basert på arbeidsmengden din.
Type system Det er et statelig system. Det er et statsløst system.

Bruk tilfeller av AWS Lambda

AWS Lambda brukes til et bredt spekter av applikasjoner som:

  • Hjelper deg med ETL-prosessen
  • Lar deg utføre sanntids filbehandling og strømbehandling i sanntid
  • Brukes til å lage webapplikasjoner
  • Brukes i Amazon-produkter som Alexa Chatbots og Amazon Echo / Alexa
  • Databehandling (sanntids streaming-analyse)
  • Automatiserte sikkerhetskopier av hverdagsoppgaver
  • Skalerbare bakenden (mobilapper, loT-enheter)
  • Hjelper deg med å utføre backendlogikk på serversiden
  • Lar deg filtrere og transformere data

Beste fremgangsmåter for Lambda-funksjon

Her er noen gode fremgangsmåter for AWS Lambda-funksjoner:

  • Bruk riktig "timeout".
  • Bruk funksjonene til lokal lagring som er 500 MB i størrelse / temp-mappen
  • Å minimere bruken av oppstartskode som ikke er direkte relatert til behandlingen av den aktuelle hendelsen.
  • Du bør bruke innebygd CloudWatch-overvåking av Lambda-funksjonene dine for å se og optimalisere forespørselsforsinkelser.

Når skal du ikke 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 å ringe underliggende Windows RPC-er
  • Hvis brukes til tilpassede programvareapplikasjoner med lisensavtaler som MS-Office-dokumentbehandling, Oracle-databaser, etc.
  • AWS Lambda bør ikke brukes til egendefinert maskinvareprosess som GPU-akselerasjon, maskinvareaffinitet.

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 VPC
  • Forfatter direkte med WYSIWYG editor i konsollen.
  • Du kan bruke den som et plugin for Eclipse og Visual Studio.
  • Siden det er serverfri 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 respons på hendelser uten å bygge noen infrastruktur.
  • Du trenger bare å ta beregningstiden, bare 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øring eller administrere andre servere
  • Hjelper deg med å utfø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 hendelsestimere for å utføre planlagte oppgaver.
  • Lambda-funksjonen i AWS skal konfigureres med ekstern hendelse og tidtakere slik; den kan brukes til planlegging.
  • Lambda-funksjoner er statsløse slik at den kan skaleres raskt.
  • AWS Lambda er rask, så den vil utføre koden din innen millisekunder.

Begrensninger av AWS Lambda

Her er ulemper / ulemper 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 ekstra programvare 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 din krever det.
  • Minnevolumet kan variere mellom 128 og 1536 MB.
  • Hendelsesforespørsel bør ikke overstige 128 KB.
  • Lambda-funksjoner hjelper deg med å skrive loggene bare i CloudWatch. Dette er det eneste verktøyet som lar deg overvåke eller feilsøke funksjonene dine.
  • Tidsavbrudd for kodeutførelse er bare 5 minutter.

Sammendrag

  • Serverless er et begrep som vanligvis refererer til serverløse applikasjoner.
  • AWS Lambda er en slik serverløs beregningstjeneste. Derfor trenger du ikke bekymre deg for hvilke AWS-ressurser som skal lanseres, eller hvordan de vil håndtere dem.
  • En funksjon er et program eller et skript som kjører i AWS serverfri Lambda.
  • Runtime tillater funksjoner på forskjellige språk som kjører på samme baseutførelsesmiljø.
  • En hendelseskilde er en AWS-tjeneste, for eksempel Amazon SNS, eller en tilpasset tjeneste.
  • Lambda-lag er en viktig distribusjonsmekanisme for biblioteker, tilpassede kjøretider og andre viktige funksjonsavhengigheter.
  • Loggstrøm lar deg kommentere funksjonskoden din med egendefinerte loggsetninger som hjelper deg med å analysere kjøringsflyten og ytelsen til Lambda-funksjonene.
  • AWS Lambda er en plattform som en tjeneste (PaaS). Det hjelper deg å kjøre og utføre backend-koden.
  • AWS EC2 er en infrastruktur som en tjeneste (laaS). Det gir virtualiserte databehandlingsressurser.
  • Distribuer og administrer appene på AWS Cloud uten å bekymre deg for infrastrukturen som kjører disse applikasjonene.
  • AWS Lambda brukes til å kjøre og utføre Back-end-koden. Du kan ikke bruke den til å distribuere et program.
  • AWS Lambda hjelper deg med ETL-prosessen.
  • Den beste fremgangsmåten for Lambda-funksjon i AWS er ​​å bruke riktig "timeout".
  • Det er ikke hensiktsmessig å bruke AWS Lambda-programvarepakker eller applikasjoner som er avhengige av å ringe underliggende 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 bli utløst når du bruker AWS Lambda er Sett inn, oppdaterer og sletter data Dynamo DB-tabellen.