AWS Lambda Tutorial: Din guide til Amazon Serverless Computing



Denne AWS Lambda-opplæringen beskriver Serverless Compute Platform of AWS som dekker detaljer om Lambda-funksjon, hendelseskilde, Lambda-priser med en brukssak.

AWS Lambda Tutorial

I dag skal vi snakke om AWS Lambda. AWS Lambda er en beregningstjeneste som tilbys av Amazon. Du må være nysgjerrig siden det er flere andre beregningstjenester fra AWS, for eksempel AWS EC2, AWS Elastic Beanstalk, AWS Opsworks etc., hvorfor en annen beregningstjeneste? I denne AWS Lambda-opplæringen vil du oppdage hva som er AWS Lambda, hvorfor det brukes og i hvilke brukstilfeller du bør vurdere det.

La oss se hvordan Amazon definerer AWS Lambda, og så vil vi ta et dypdykk i nøkkelbegrepene, forstå en brukstilfelle med en praktisk til slutt.





Lambda Serverless computing - aws lambda tutorial

Hva er AWS Lambda?

Amazon forklarer at AWS Lambda (& lambda) er en 'serverløs' beregningstjeneste, som betyr at utviklerne ikke trenger å bekymre seg for hvilke AWS-ressurser som skal lanseres, eller hvordan vil de administrere dem, de legger bare koden på lambda og den går , det er så enkelt! Det hjelper deg å fokusere på kjernekompetanse, det vil si App Building eller koden.



Hvor skal jeg bruke AWS Lambda?

AWS Lambda utfører backend-koden din ved automatisk å administrere AWS-ressursene. Når vi sier 'administrer', inkluderer det å starte eller avslutte forekomster, helsekontroller, automatisk skalering, oppdatering eller oppdatering av nye oppdateringer etc.

Så hvordan fungerer det?

Koden du vil at Lambda skal kjøre, er kjent som en Lambda-funksjon . Nå, som vi vet, kjører en funksjon bare når den heter, ikke sant? Her, Arrangementskilde er enheten som utløser en Lambda-funksjon, og deretter utføres oppgaven.

La oss ta et eksempel for å forstå det tydeligere.



Anta at du har en app for bildeopplasting. Nå når du laster opp et bilde, er det mange oppgaver involvert før du lagrer det, for eksempel endring av størrelse, bruk av filtre, komprimering etc.

Så denne oppgaven med å laste opp et bilde kan defineres som en Arrangementskilde eller ‘trigger’ som vil kalle Lambda-funksjonen, og så kan alle disse oppgavene utføres via Lambda-funksjonen.

hvordan du bruker sqlite-nettleseren

I dette eksemplet må en utvikler bare definere hendelseskilden og laste opp koden.

La oss forstå dette eksemplet med ekte AWS-ressurser nå,

Fig. Lambda brukstilfelle med S3

Her vil vi laste opp bilder i form av gjenstander til en S3-bøtte. Dette å laste opp et bilde til S3-skuffen, blir en hendelseskilde eller 'trigger'.

Hele prosessen, som du kan se i diagrammet, er delt inn i 5 trinn, la oss forstå hver enkelt av dem.

  1. Brukeren laster opp et bilde (objekt) til en kildebøtte i S3 som har varsel knyttet til Lambda.
  2. Meldingen blir lest av S3, og den bestemmer hvor meldingen skal sendes.
  3. S3 sender varselet til Lambda, dette varselet fungerer som en påkalling av lambda-funksjonen.
  4. Utførelsesrollen i Lambda kan defineres ved å bruke IAM (Identity and Access Management) for å gi tilgangstillatelse for AWS-ressursene, for dette eksemplet her vil det være S3.
  5. Til slutt påkaller den den ønskede lambda-funksjonen som fungerer på objektet som er lastet opp til S3-bøtta.

Hvis du tradisjonelt skulle løse dette scenariet, sammen med utvikling, ville du ha ansatt folk for å håndtere følgende oppgaver:

  • Størrelse, klargjøring og oppskalering av servergruppe
  • Administrere OS-oppdateringer
  • Bruk sikkerhetsoppdateringer og
  • Overvåk all denne infrastrukturen for ytelse og tilgjengelighet.

Dette ville vært en kostbar, kjedelig og kjedelig oppgave, derfor er behovet for AWS Lambda berettiget.AWS Lambda er kompatibel med Node.JS, Python og Java, slik at du kan laste opp filen din i en zip, definere en hendelseskilde og du er klar!

Du kan lese mer om S3 AWS her for en dypere forståelse.

Vi vet nå -Hvordan Lambda fungerer ogHva Lambda doe s .

Nla oss forstå-

  • Hvor skal jeg bruke Lambda?
  • Hvilket formål tjener Lambda, detandre AWS Compute-tjenester ikke?

Hvis du skulle lage en løsning på et problem, burde du kunne identifisere hvor du skulle bruke Lambda, ikke sant?

Så som arkitekt har du følgende alternativer for å utføre en oppgave:

  • AWS EC2
  • AWS elastisk bønnestengel
  • AWS OpsWorks
  • AWS Lambda

La oss ta den ovennevnte brukssaken som et eksempel og forstå hvorfor vi valgte Lambda for å løse det.

AWS OpsWorks og AWS ElasticBeanstalk brukes til å distribuere en app, så brukssaken vår er ikke for å lage en app , men å utføre en back-end-kode.

Så hvorfor ikke EC2?

Hvis du skulle bruke EC2, måtte du arkitektere alt, dvs. lastbalanser, EBS-volumer, programvarestabler osv. I lambda trenger du ikke å bekymre deg for noe, bare sett inn koden din, så AWS vil klare resten!

For eksempel , i EC2 installerer du programvarepakkene på den virtuelle maskinen din som støtter koden din, men i Lambda trenger du ikke bekymre deg for noen VM, bare sett inn vanlig kode og Lambda vil utføre den for deg.

Men hvis koden din vil kjøre i flere timer, og du forventer en kontinuerlig strøm av forespørsler, bør du sannsynligvis gå med EC2, fordi arkitekturen til Lambda er for en sporadisk slags arbeidsbelastning, der det vil være noen stille timer og noen pigger i nr. av forespørsler også.

For eksempel logger e-postaktiviteten for si et lite selskap, vil se mer aktivitet på dagtid enn om natten, det kan også være dager da det er mindre e-postmeldinger som skal behandles, og noen ganger kan hele verden begynne å sende deg en e-post! I begge tilfeller står Lambda til tjeneste for deg.

Tatt i betraktning denne brukssaken for et stort sosialt nettverksselskap, der e-postene ikke slutter fordi de har en enorm brukerbase, er Lambda kanskje ikke det passende valget.

klasse __init__ python

Du kan lese mer om EC2 AWS her for en dypere forståelse.

Begrensninger av AWS Lambda

Noen begrensninger er maskinvarespesifikke, og noen er bundet av arkitekturen, la oss diskutere dem alle.

Maskinvarebegrensninger inkluderer diskstørrelsen, som er begrenset til 512 MB, kan minnet variere mellom 128 MB og 1536 MB. Deretter er det noen andre, slik at tidsavbruddet for utførelsen kan maksimeres til bare 5 minutter, forespørselens kroppsnyttelast kan ikke være mer enn 6 MB og forespørselens kropp er 128 KB. Nyttelasten for forespørselens kropp er som dataene du sender med en 'GET' eller 'PUT' forespørsel i HTTP, der forespørsel kroppen ville være typen forespørsel, overskrifter osv.

Egentlig er dette ikke begrensninger, men er designgrensene som er satt i arkitekturen til Lambda, så hvis brukssaken din ikke passer til disse, har du alltid de andre AWS-beregningstjenestene til din disposisjon.

Vi diskuterte i denne AWS Lambda-veiledningen at det å gjøre oppgaver i Lambda ikke er kjedelig og slitsomt. La oss nå dekke utgiftsdelen også.

Priser i AWS Lambda

Som de fleste av AWS-tjenestene, er AWS Lambda også en betaling per bruk-tjeneste, noe som betyr at du bare betaler det du bruker, og derfor blir du belastet med følgende parametere

  • Antall forespørsler som du lager lambdafunksjonen din
  • De varighet som koden din kjøres for.

Forespørsler

  • Du blir belastet for antall forespørsler du gjør på tvers av alle lambdafunksjonene dine.
  • AWS Lambda teller en forespørsel hver gang den begynner å kjøre som svar på en hendelseskilde eller påkalle anrop, inkludert test påkalles fra konsollen. La oss se på prisene nå:
    • De første 1 million forespørslene, hver måned, er gratis.
    • 0,20 $ per million forespørsler deretter.

Varighet

  • Varigheten beregnes fra det øyeblikket koden begynner å kjøres til det øyeblikket den returnerer eller avsluttes, blir den avrundet til nærmeste 100 ms.
  • Prisen avhenger av hvor mye minne du tildeler funksjonen din. Du belastes $ 0,00001667 for hvert GB-sekund som brukes.

* Kilde: AWS offisielle nettsted

Hvis du har nådd til her, er du klar for en hands-on i Lambda. La oss ha det litt gøy!

Praktisk: AWS Lambda DIY

La oss lage en Lambda-funksjon som logger 'Et objekt er lagt til' når du legger til et objekt i en bestemt bøtte i S3.

Trinn 1: Velg AWS Lambda fra AWS Management Console under Compute-seksjonen.

Steg 2: På AWS Lambda Console, klikk på “Create a Lambda function”.

hva er vedlegg i java

Steg 3: På neste side må du velge en tegning. For eksempel vil vi velge den blanke funksjonen for vårt brukstilfelle.

Trinn 4: På neste side vil du (1) sette en utløser, siden vi skal jobbe med S3, (2) velg S3-utløseren og deretter (3) klikk Neste.

Trinn 5: På konfigurasjonssiden fyller du ut detaljene. Du kan legge inn din egen kode, eller du kan kopiere den samme koden fra denne brukssaken. Deretter fyller du behandleren og rollen, lar de avanserte innstillingene være som de er, til slutt klikker du neste.

Trinn 6: Gå gjennom neste informasjon på neste side, og klikk på “Opprett funksjon”.

Trinn 7: Nå, siden vi opprettet funksjonen for S3-bøtte, i det øyeblikket du legger til en fil i S3-bøtta, bør du få en logg for det samme i CloudWatch, som er en overvåkingstjeneste fra AWS.

Gratulerer!Du har utført Lambda-funksjonen.

Jeg håper du likte det dype dykket i AWS Lambda Tutorial. Det er et av de mest ønskede kunnskapsområdene i AWS økosystem for stillinger som Solutions Architect, Cloud Engineer, DevOps Engineer. Her er en samling av for å hjelpe deg med å forberede ditt neste AWS jobbintervju.

Hvis du fant denne AWS Lambda-opplæringen relevant, kan du sjekke ut Edurekas live- og instruktørledede kurs på , medskapet av utøvere i bransjen.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.