Hvad er AWS Lambda? Lambdafunktion med eksempler
Før AWS Lambda-funktion, lad os forstå:
Hvad er serverløs?
Serverløs er et udtryk, der generelt refererer til serverløse applikationer. Serverløse applikationer er dem, der ikke har brug for nogen serverforsyning og ikke kræver at administrere servere.
Hvad er AWS Lambda?
AWS Lambda er en hændelsesdrevet, serverløs computerplatform leveret af Amazon som en del af Amazon Webtjenester. Derfor behøver du ikke bekymre dig om, hvilke AWS-ressourcer du skal lancere, eller hvordan du vil administrere dem. I stedet skal du sætte koden på Lambda, og den kører.
I AWS Lambda udføres koden baseret på responsen af hændelser i AWS-tjenester, såsom tilføje/slet filer i S3-bøtten, HTTP-anmodning fra Amazon API-gateway osv. Dog Amazon Lambda kan kun bruges til at udføre baggrundsopgaver.
AWS Lambda-funktion hjælper dig med at fokusere på dit kerneprodukt og din forretningslogik i stedet for at administrere operativsystemets (OS) adgangskontrol, OS patching, højre størrelse, klargøring, skalering osv.
Hvordan virker AWS Lambda?
Følgende AWS Lambda-eksempel med blokdiagram forklarer, hvordan AWS Lambda fungerer i nogle få nemme trin:
Trin 1: Upload først din AWS Lambda-kode på ethvert sprog, der understøttes af AWS Lambda. Java, Python, Go og C# er nogle af de sprog, der understøttes af AWS Lambda-funktion.
Trin 2: Dette er nogle AWS-tjenester, som giver dig mulighed for at udløse AWS Lambda.
Trin 3: AWS Lambda hjælper dig med at uploade kode og begivenhedsdetaljerne, hvorpå den skal udløses.
Trin 4: Udfører AWS Lambda Code, når den udløses af AWS-tjenester:
Trin 5: AWS opkræver kun, når AWS lambda-koden udføres, og ikke andet.
Dette vil ske i følgende scenarier:
- Upload filer i en S3-bøtte
- Når HTTP get/post endpoint URL er ramt
- Til tilføjelse/ændring og sletning af Dynamo DB-tabeller
- I færd med indsamling af datastrømme
- Push notifikation
- Hosting af hjemmeside
- E-mail afsendelse
Bemærk: Du skal huske, at du kun opkræver betaling for AWS-tjenester, når AWS Lambda-koden udføres, ellers behøver du ikke betale noget.
Begivenheder, der udløser AWS Lambda
Her er begivenheder, som vil blive udløst, når du bruger AWS Lambda.
- Indsæt, opdatering og sletning af data Dynamo DB-tabel
- At inkludere push-meddelelser i SNS
- For at søge efter loghistorik i CloudTrail
- Indgang i et S3-objekt
- DynamoDB kan udløse AWS Lambda, når der er tilføjet, ændret og slettet data i tabellen.
- Hjælper dig med at planlægge begivenheden, så den udfører opgaven på et fast tidspunkt.
- Ændringer af objekter i S3-spande
- Meddelelser sendt fra Amazon SNS.
- AWS Lambda kan bruges til at behandle CloudTrail-loggene
- API Gateway giver dig mulighed for at udløse AWS Lambda på GET/POST metoder.
AWS Lambda Concepts
Funktion:
En funktion er et program eller et script, der kører i AWS Lambda. Lambda sender invokationshændelser til din funktion, som behandler en hændelse og returnerer dens svar.
Kørselstider:
Runtime tillader funktioner på forskellige sprog, som kører på det samme basisudførelsesmiljø. Dette hjælper dig med at konfigurere din funktion i runtime. Det matcher også dit valgte programmeringssprog.
Begivenhedskilde:
En hændelseskilde er en AWS-tjeneste, som f.eks Amazon SNS eller en tilpasset service. Denne triggerfunktion hjælper dig med at udføre dens logik.
Lambda lag:
Lambdalag er en vigtig distributionsmekanisme for biblioteker, brugerdefinerede kørselstider og andre vigtige funktionsafhængigheder. Denne AWS-komponent hjælper dig også med at administrere din udviklingsfunktionskode adskilt fra den uændrede kode og de ressourcer, den bruger.
Logstrømme:
Log-stream giver dig mulighed for at annotere din funktionskode med brugerdefinerede log-sætninger, som hjælper dig med at analysere udførelsesflowet og ydeevnen af dine AWS Lambda-funktioner.
Sådan bruger du AWS Lambda
Nu vil vi lære, hvordan du bruger AWS Lambda med AWS Lambda eksempel:
Trin 1) Trin 1) Åbn AWS Lambda URL
Gå til https://aws.amazon.com/lambda/ og kom i gang
Trin 2) Opret en konto
Opret derefter en konto eller log ind med din eksisterende konto
Trin 3) Rediger koden og klik på Kør,
På den næste Lambda-side,
- Rediger koden
- Klik på Kør
Trin 4) Tjek output
Du vil se output
AWS Lambda VS AWS EC2
Her er nogle store forskelle mellem AWS Lambda og EC2.
parametre | AWS Lambda | AWS EC2 |
---|---|---|
Definition | AWS Lambda er en platform som en tjeneste (PaaS). Det hjælper dig med at køre og udføre din backend-kode. | AWS EC2 er en infrastruktur som en tjeneste (laaS). Det giver virtualiserede computerressourcer. |
Fleksibilitet | Tilbyder ikke nogen fleksibilitet til at logge ind for at beregne instanser. Det giver dig mulighed for at vælge et tilpasset operativsystem eller sprogkørsel. | Tilbyder fleksibiliteten til at vælge en række forskellige instanser, brugerdefinerede operativsystemer, sikkerhedsrettelser og netværk osv. |
Installationsproces | Du skal vælge dit miljø, hvor du vil køre koden og skubbe koden ind i AWS Lambda. | For første gang i EC2 skal du vælge OS og installere al den nødvendige software og derefter skubbe din kode i EC2. |
Miljørestriktioner | Det er begrænset til få sprog. | Ingen miljørestriktioner. |
AWS Lambda VS AWS Elastic Beanstalk
Her er nogle store forskelle mellem AWS Lambda og Elastic Beanstalk.
parametre | AWS elastisk bønnestængel | AWS Lambda |
---|---|---|
Hovedopgave | Implementer og administrer apps på AWS Cloud uden at bekymre dig om infrastrukturen, der kører disse applikationer. | AWS Lambda bruges til at køre og udføre din backend-kode. Du kan ikke bruge det til at implementere en applikation. |
Valg af AWS-ressourcer | Det giver dig en frihed til at vælge AWS-ressourcer; For eksempel kan du vælge EC2 instans, som er optimal i forhold til din applikation. | Du kan ikke vælge AWS-ressourcerne, ligesom en type EC2-instans, Lambda tilbyder ressourcer baseret på din arbejdsbyrde. |
Type af system | Det er et statsligt system. | Det er et statsløst system. |
Brugstilfælde af AWS Lambda
AWS Lambda bruges til en bred vifte af applikationer som:
- Hjælper dig til ETL-processen
- Giver dig mulighed for at udføre filbehandling i realtid og streaming i realtid
- Bruges til at oprette webapplikationer
- Brug i Amazon produkter som Alexa Chatbots og Amazon Echo/Alexa
- Databehandling (streaminganalyse i realtid)
- Automatisk sikkerhedskopiering af daglige opgaver
- Skalerbare bagsider (mobilapps, mange enheder)
- Hjælper dig med at udføre server-side backend logik
- Giver dig mulighed for at filtrere og transformere data
Bedste praksis for Lambda-funktion
Her er nogle bedste praksisser for AWS Lambda funktioner:
- Brug den rigtige "timeout".
- Udnyt funktionerne i lokal lagring, som er 500MB i størrelse i mappen /temp
- Minimering af brugen af opstartskode, som ikke er direkte relateret til behandling af den aktuelle hændelse.
- Du bør bruge indbygget CloudWatch-overvågning af dine Lambda-funktioner til at se og optimere anmodningsforsinkelser.
Hvornår skal AWS Lambda ikke bruges
Følgende er situationen, hvor Lambda bestemt ikke er en ideel mulighed:
- Det er ikke passende at bruge AWS Lambda-softwarepakker eller applikationer, der er afhængige af underliggende opkald Windows RPC'er
- Hvis bruges til brugerdefinerede softwareapplikationer med licensaftaler som MS-Office dokumentbehandling, Oracle databaser mv.
- AWS Lambda bør ikke bruges til tilpasset hardwareproces såsom GPU-acceleration, hardware-affinitet.
Fordele ved at bruge AWS Lambda
Her er fordele/fordele ved at bruge AWS lambda:
- AWS Lambda er et yderst fleksibelt værktøj at bruge
- Det hjælper dig med at give adgang til ressourcer, herunder VPC'er
- Forfatter direkte med WYSIWYG redaktør i konsollen.
- Du kan bruge det som et plugin til Eclipse og Visual Studio.
- Da det er en serverløs arkitektur, behøver du ikke bekymre dig om at administrere eller klargøre servere.
- Du behøver ikke opsætte nogen Virtual Machine.
- Hjælper udviklere med at køre og eksekvere kodens svar på hændelser uden at bygge nogen infrastruktur.
- Du skal bare for den beregnede tid, det tager, kun når din kode kører.
- Du kan overvåge din kodeydelse i realtid gennem CloudWatch.
- Det giver dig mulighed for at køre din kode uden klargøring eller at administrere en anden server
- Hjælper dig med kun at udføre koden, når det er nødvendigt
- Du kan skalere den automatisk til at håndtere et par anmodninger om dagen og endda understøtte mere end tusindvis af anmodninger i sekundet.
- AWS Lambda kan konfigureres ved hjælp af eksterne hændelsestimere til at udføre planlagte opgaver.
- Lambdafunktionen i AWS skal konfigureres med ekstern hændelse og timere så; det kan bruges til planlægning.
- Lambdafunktionerne er statsløse, så den kan skaleres hurtigt.
- AWS Lambda er hurtig, så den vil udføre din kode inden for millisekunder.
Begrænsninger af AWS Lambda
Her er ulemperne/ulemperne ved at bruge AWS Lambda:
- AWS Lambda-værktøj er ikke egnet til små projekter.
- AWS Lambda er helt afhængig af AWS til infrastrukturen, så du kan ikke installere yderligere software, hvis din kode kræver det.
- Samtidig udførelse er begrænset til 100
- AWS Lambda var fuldstændig afhængig af AWS for infrastrukturen; du kan ikke installere noget ekstra software, hvis din kode kræver det.
- Dens hukommelsesvolumen kan variere mellem 128 og 1536 MB.
- Begivenhedsanmodning bør ikke overstige 128 KB.
- Lambda-funktioner hjælper dig med kun at skrive deres logfiler i CloudWatch. Dette er det eneste værktøj, der giver dig mulighed for at overvåge eller fejlfinde dine funktioner.
- Dens kodeudførelsestimeout er kun 5 minutter.
Resumé
- Serverløs er et udtryk, der generelt refererer til serverløse applikationer.
- AWS Lambda er en sådan serverløs computertjeneste. Derfor behøver du ikke bekymre dig om, hvilke AWS-ressourcer du skal lancere, eller hvordan de vil administrere dem.
- En funktion er et program eller et script, som kører i AWS serverløs Lambda.
- Runtime tillader funktioner på forskellige sprog, som kører på det samme basisudførelsesmiljø.
- En hændelseskilde er en AWS-tjeneste, som f.eks Amazon SNS eller en tilpasset service.
- Lambdalag er en vigtig distributionsmekanisme for biblioteker, brugerdefinerede kørselstider og andre vigtige funktionsafhængigheder.
- Log-stream giver dig mulighed for at annotere din funktionskode med brugerdefinerede log-sætninger, som hjælper dig med at analysere udførelsesflowet og ydeevnen af dine Lambda-funktioner.
- AWS Lambda er en platform som en tjeneste (PaaS). Det hjælper dig med at køre og udføre din backend-kode.
- AWS EC2 er en infrastruktur som en tjeneste (laaS). Det giver virtualiserede computerressourcer.
- Implementer og administrer apps på AWS Cloud uden at bekymre dig om infrastrukturen, der kører disse applikationer.
- AWS Lambda bruges til at køre og udføre din backend-kode. Du kan ikke bruge det til at implementere en applikation.
- AWS Lambda hjælper dig med at ETL proces.
- Den bedste praksis med Lambda-funktionen i AWS er at bruge den rigtige "timeout".
- Det er ikke passende at bruge AWS Lambda-softwarepakker eller applikationer, der er afhængige af underliggende opkald Windows RPC'er
- AWS Lambda er et yderst fleksibelt værktøj.
- AWS Lambda-værktøj er ikke egnet til små projekter.
- En almindelig hændelse, som vil blive udløst, når du bruger AWS Lambda, er Indsæt, opdatering og sletning af data Dynamo DB-tabel.