AWS Lambda Tutorial: Din guide til Amazon Serverless Computing



Denne AWS Lambda-selvstudie beskriver serverløs beregningsplatform for AWS, der dækker detaljer om Lambda-funktion, hændelseskilde, Lambda-prisfastsættelse med en brugssag.

AWS Lambda Tutorial

I dag skal vi tale om AWS Lambda. AWS Lambda er en computertjeneste, der tilbydes af Amazon. Du skal være nysgerrig, da der er flere andre computertjenester fra AWS, såsom AWS EC2, AWS Elastic Beanstalk, AWS Opsworks osv., Hvorfor så en anden computertjeneste? I denne AWS Lambda-vejledning opdager du, hvad der er AWS Lambda, hvorfor det bruges, og i hvilke brugssager du skal overveje det.

Lad os se, hvordan Amazon definerer AWS Lambda, og så vil vi tage et dybt dyk ind i nøglekoncepterne, forstå en brugssag med en praktisk til sidst.





Lambda Serverless computing - aws lambda tutorial

Hvad er AWS Lambda?

Amazon forklarer, AWS Lambda (& lambda) som en 'serverløs' computertjeneste, hvilket betyder, at udviklerne ikke behøver at bekymre sig om, hvilke AWS-ressourcer der skal lanceres, eller hvordan vil de administrere dem, de lægger bare koden på lambda, og den kører , det er så simpelt! Det hjælper dig med at fokusere på kernekompetence, dvs. App Building eller koden.



Hvor skal jeg bruge AWS Lambda?

AWS Lambda udfører din backend-kode ved automatisk at administrere AWS-ressourcerne. Når vi siger 'administrer', inkluderer det lancering eller afslutning af forekomster, sundhedskontrol, automatisk skalering, opdatering eller opdatering af nye opdateringer osv.

skriver en tolk i java

Så hvordan fungerer det?

Koden, som du vil have Lambda til at køre, er kendt som en Lambda-funktion . Som vi ved, kører en funktion kun, når den kaldes, ikke? Her, Begivenhedskilde er den enhed, der udløser en Lambda-funktion, og derefter udføres opgaven.

Lad os tage et eksempel for at forstå det mere tydeligt.



Antag at du har en app til upload af billeder. Når du nu uploader et billede, er der mange opgaver involveret, inden du gemmer det, såsom størrelse, anvendelse af filtre, komprimering osv.

Så denne opgave med at uploade et billede kan defineres som en Begivenhedskilde eller 'trigger', der kalder Lambda-funktionen, og så kan alle disse opgaver udføres via Lambda-funktionen.

I dette eksempel skal en udvikler bare definere begivenhedskilden og uploade koden.

Lad os forstå dette eksempel med ægte AWS-ressourcer nu,

Fig. Lambda brugssag med S3

Herover vil vi uploade billeder i form af objekter til en S3-spand. Dette uploade et billede til S3-skovlen bliver en begivenhedskilde eller 'trigger'.

Hele processen, som du kan se i diagrammet, er opdelt i 5 trin, lad os forstå hver enkelt af dem.

  1. Brugeren uploader et billede (objekt) til en kildebakke i S3, der har tilknytning til Lambda.
  2. Meddelelsen læses af S3, og den beslutter, hvor meddelelsen skal sendes.
  3. S3 sender underretningen til Lambda, denne meddelelse fungerer som et påkaldsopkald fra lambda-funktionen.
  4. Udførelsesrolle i Lambda kan defineres ved hjælp af IAM (Identity and Access Management) til at give adgangstilladelse til AWS-ressourcerne, for dette eksempel her ville det være S3.
  5. Endelig påkalder den den ønskede lambda-funktion, der fungerer på det objekt, der er uploadet til S3-skovlen.

Hvis du traditionelt skulle løse dette scenario sammen med udvikling, ville du have ansat folk til at styre følgende opgaver:

  • Størrelse, levering og opskalering af gruppe af servere
  • Håndtering af OS-opdateringer
  • Anvend sikkerhedsrettelser og
  • Overvåg al denne infrastruktur for ydeevne og tilgængelighed.

Dette ville have været en dyr, kedelig og trættende opgave, hvorfor behovet for AWS Lambda er berettiget.AWS Lambda er kompatibel med Node.JS, Python og Java, så du kan uploade din fil i en zip, definere en hændelseskilde, og du er klar!

Du kan læse mere om S3 AWS her for en dybere forståelse.

Vi ved nu -Sådan fungerer Lambda ogHvilken Lambda doe s .

Nlad os forstå -

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

Hvis du skulle arkitekt en løsning på et problem, skulle du være i stand til at identificere, hvor du skulle bruge Lambda, ikke?

Så som arkitekt har du følgende muligheder for at udføre en opgave:

  • AWS EC2
  • AWS elastisk bønnestængel
  • AWS OpsWorks
  • AWS Lambda

Lad os tage ovenstående brugssag som et eksempel og forstå, hvorfor vi valgte Lambda til at løse det.

AWS OpsWorks og AWS ElasticBeanstalk bruges til at implementere en app, så vores brugssag er ikke at oprette en app , men at udføre en back-end-kode.

Så hvorfor ikke EC2?

Hvis du bruger EC2, bliver du nødt til at arkitektere alt, dvs. load balancer, EBS-volumener, softwarestakke osv. I lambda behøver du ikke bekymre dig om noget, bare indsæt din kode, så AWS administrerer resten!

For eksempel , i EC2 ville du installere softwarepakkerne på din virtuelle maskine, der understøtter din kode, men i Lambda behøver du ikke bekymre dig om nogen VM, bare indsæt almindelig kode, og Lambda udfører den for dig.

Men hvis din kode kører i timevis, og du forventer en kontinuerlig strøm af anmodninger, skal du sandsynligvis gå med EC2, fordi arkitekturen i Lambda er til en sporadisk form for arbejdsbyrde, hvor der vil være nogle stille timer og nogle spidser i nr. af anmodninger også.

For eksempel ved at logge e-mail-aktiviteten for at sige en lille virksomhed, ville se mere aktivitet i løbet af dagen end om natten, også der kunne være dage, hvor der er færre e-mails, der skal behandles, og nogle gange kunne hele verden sende dig en e-mail! I begge tilfælde står Lambda til din tjeneste.

I betragtning af denne brugssag for et stort socialt netværksfirma, hvor e-mails aldrig slutter, fordi det har en enorm brugerbase, er Lambda muligvis ikke det passende valg.

Du kan læse mere om EC2 AWS her for en dybere forståelse.

Begrænsninger af AWS Lambda

Nogle begrænsninger er hardwarespecifikke, og andre er bundet af arkitekturen, lad os diskutere dem alle.

Hardwarebegrænsninger inkluderer diskstørrelsen, som er begrænset til 512 MB, kan hukommelsen variere mellem 128 MB og 1536 MB. Så er der nogle andre, såsom timeout for udførelse kan maksimeres til kun 5 minutter, din anmodningskrops nyttelast kan ikke være mere end 6 MB, og din anmodningskrop er 128 KB. Anmodningslegems nyttelast er som de data, du sender med en 'GET' eller 'PUT' anmodning i HTTP, hvor anmodningsorganet ville være typen af ​​anmodning, overskrifter osv.

php hvordan man udskriver array

Faktisk er dette ikke begrænsninger, men er de designgrænser, der er sat i Lambdas arkitektur, så hvis din brugssag ikke passer til disse, har du altid de andre AWS-computertjenester til din rådighed.

Vi diskuterede i denne AWS Lambda-vejledning, hvordan det at gøre opgaver i Lambda er 'ikke' kedeligt og trættende. Lad os nu også dække udgiftsdelen.

Priser i AWS Lambda

Som de fleste af AWS-tjenesterne er AWS Lambda også en betaling pr. Brug-tjeneste, hvilket betyder at du kun betaler det, du bruger, og du bliver derfor opkrævet af følgende parametre

  • Antallet af anmodninger som du laver til din lambda-funktion
  • Det varighed som din kode udføres for.

Anmodninger

  • Du debiteres for antallet af anmodninger, du fremsætter på tværs af alle dine lambda-funktioner.
  • AWS Lambda tæller en anmodning hver gang den begynder at udføre som svar på en hændelseskilde eller påkald opkald, inklusive test påkaldes fra konsollen. Lad os se på priserne nu:
    • De første 1 million anmodninger hver måned er gratis.
    • 0,20 $ per million anmodninger derefter.

Varighed

  • Varighed beregnes fra det øjeblik din kode begynder at køre til det øjeblik den vender tilbage eller slutter, afrundes den op til de nærmeste 100 ms.
  • Prisen afhænger af mængden af ​​hukommelse, du tildeler til din funktion, du opkræves $ 0,00001667 for hvert GB-sekund, der bruges.

* Kilde: AWS officielle hjemmeside

Hvis du har nået indtil her, er du klar til en hands-on i Lambda. Lad os have det sjovt!

Praktisk: AWS Lambda DIY

Lad os oprette en Lambda-funktion, der logger 'Et objekt er tilføjet', når du først tilføjer et objekt til en bestemt skovl i S3.

Trin 1: Vælg AWS Lambda i AWS Management Console under Compute-sektionen.

Trin 2: Klik på 'Opret en Lambda-funktion' på AWS Lambda-konsollen.

Trin 3: På den næste side skal du vælge en tegning. For eksempel vælger vi den tomme funktion til vores brugssag.

Trin 4: På den næste side vil du (1) indstille en trigger, da vi skal arbejde på S3, (2) vælg S3-triggeren og derefter (3) klikke på Next.

Trin 5: Udfyld detaljerne på konfigurationssiden. Du kan sætte din egen kode, eller du kan kopiere den samme kode fra denne brugssag. Derefter skal du udfylde handleren og rollen, lade de avancerede indstillinger være, som de er, og klik derefter på næste.

rekursionsfibonacci c ++

Trin 6: På den næste side skal du gennemgå alle oplysningerne og klikke på “Opret funktion”.

Trin 7: Nu da vi oprettede funktionen til S3 bucket, skal du i det øjeblik du tilføjer en fil til din S3 bucket få en log for det samme i CloudWatch, som er en overvågningstjeneste fra AWS.

Tillykke!Du har udført Lambda-funktionen.

Jeg håber, du nød det dybe dyk i AWS Lambda Tutorial. Det er et af de mest ønskede videnområder i AWS-økosystemet til jobstillinger som Solutions Architect, Cloud Engineer, DevOps Engineer. Her er en samling af for at hjælpe dig med at forberede dit næste AWS jobinterview.

Hvis du fandt denne AWS Lambda-tutorial relevant, kan du tjekke Edurekas live- og instruktørledte kursus om , co-oprettet af fagfolk i branchen.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, så vender vi tilbage til dig.