Lad os forstå før AWS Lambda-funktion:
Hvad er serverløs?
Serverfri er et udtryk, der generelt henviser til serverløse applikationer. Serverløse applikationer er dem, der ikke har brug for nogen servertilvejebringelse og ikke kræver administration af servere.
Hvad er AWS Lambda?
AWS Lambda er en hændelsesdrevet, serverløs computerplatform leveret af Amazon som en del af Amazon Web Services. Derfor behøver du ikke bekymre dig om, hvilke AWS-ressourcer der skal lanceres, eller hvordan vil du styre dem. I stedet skal du sætte koden på Lambda, og den kører.
I AWS Lambda udføres koden baseret på svaret fra hændelser i AWS-tjenester såsom tilføj / sletning af filer i S3-bucket, HTTP-anmodning fra Amazon API-gateway osv. Amazon Lambda kan dog kun bruges til at udføre baggrundsopgaver.
AWS Lambda-funktion hjælper dig med at fokusere på dit kerneprodukt og forretningslogik i stedet for at styre operativsystemadgang (OS) adgangskontrol, OS-patch, højre størrelse, klargøring, skalering osv.
I denne AWS Lambda-tutorial til begyndere lærer du:
- Hvordan fungerer AWS Lambda?
- Begivenheder, der udløser AWS Lambda
- AWS Lambda-koncepter
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastic Beanstalk
- Brug tilfælde af AWS Lambda
- Bedste fremgangsmåder ved Lambda-funktion
- Hvornår skal man ikke bruge AWS Lambda
- Fordele ved at bruge AWS Lambda
- Begrænsninger af AWS Lambda
Hvordan fungerer AWS Lambda?
Følgende AWS Lambda-eksempel med blokdiagram forklarer, hvordan AWS Lambda fungerer i et par enkle 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-funktionen.
Trin 2: Dette er nogle AWS-tjenester, der giver dig mulighed for at udløse AWS Lambda.
Trin 3: AWS Lambda hjælper dig med at uploade kode og de begivenhedsoplysninger, som den skal udløses på.
Trin 4: Udfører AWS Lambda-kode, når den udløses af AWS-tjenester:
Trin 5: AWS opkræves kun, når AWS lambda-koden udføres, og ikke på anden måde.
Dette vil ske i følgende scenarier:
- Upload filer i en S3-spand
- Når HTTP get / post endpoint URL er ramt
- Til tilføjelse / ændring og sletning af Dynamo DB-tabeller
- I gang med indsamling af datastrømme
- Push notifikation
- Hosting af websted
- Afsendelse af e-mail
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, der udløses, når du bruger AWS Lambda.
- Indsæt, opdater og slet data Dynamo DB-tabel
- At inkludere push-underretninger i SNS
- For at søge efter loghistorik i CloudTrail
- Indgang til et S3-objekt
- DynamoDB kan udløse AWS Lambda, når der tilføjes, ændres og slettes data i tabellen.
- Hjælper dig med at planlægge begivenheden til at udføre opgaven på et regelmæssigt tidsmønster.
- Ændringer af objekter i S3 spande
- Meddelelser sendt fra Amazon SNS.
- AWS Lambda kan bruges til at behandle CloudTrail-logfilerne
- API Gateway giver dig mulighed for at udløse AWS Lambda på GET / POST-metoder.
AWS Lambda-koncepter
Fungere:
En funktion er et program eller et script, der kører i AWS Lambda. Lambda sender påkaldshændelser til din funktion, som behandler en begivenhed og returnerer sit svar.
Kørselstider:
Runtime tillader funktioner på forskellige sprog, der kører på det samme baseudførelsesmiljø. Dette hjælper dig med at konfigurere din funktion i løbetid. Det matcher også dit valgte programmeringssprog.
Begivenhedskilde:
En begivenhedskilde er en AWS-tjeneste, såsom Amazon SNS, eller en tilpasset tjeneste. Denne udløsningsfunktion hjælper dig med at udføre dens logik.
Lambda lag:
Lambda-lag er en vigtig distributionsmekanisme for biblioteker, brugerdefinerede driftstider og andre vigtige funktionsafhængigheder. Denne AWS-komponent hjælper dig også med at administrere din udviklingsfunktionskode separat fra den uændrede kode og ressourcer, den bruger.
Log streams:
Logstrøm giver dig mulighed for at kommentere din funktionskode med brugerdefinerede logafgørelser, som hjælper dig med at analysere udførelsesflowet og ydeevnen for dine AWS Lambda-funktioner.
Sådan bruges AWS Lambda
Nu vil vi lære at bruge AWS Lambda med AWS Lambda-eksempel:
Trin 1 ) Gå til https://aws.amazon.com/lambda/ og kom godt i gang
Trin 2 ) Opret en konto eller log ind med din eksisterende konto
Trin 3 ) På den næste Lambda-side,
- Rediger koden
- Klik på Kør
Trin 4 ) 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 på for at beregne forekomster. Det giver dig mulighed for at vælge et tilpasset operativsystem eller sprogkørselstid. | Tilbyder fleksibiliteten til at vælge forskellige forekomster, brugerdefinerede operativsystemer, sikkerhedsrettelser og netværk osv. |
Installationsproces | Du skal vælge dit miljø, hvor du vil køre koden, og skub koden ind i AWS Lambda. | For første gang i EC2 skal du vælge operativsystemet 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 | Implementere og administrere 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 Back-end-kode. Du kan ikke bruge den til at implementere en applikation. |
Valg af AWS-ressourcer | Det giver dig frihed til at vælge AWS-ressourcer; For eksempel kan du vælge EC2-forekomst, der er optimal i henhold til din applikation. | Du kan ikke vælge AWS-ressourcer, ligesom en type EC2-forekomst, tilbyder Lambda ressourcer baseret på din arbejdsbyrde. |
Type system | Det er et statefult system. | Det er et statsløst system. |
Brug tilfælde af AWS Lambda
AWS Lambda bruges til en bred vifte af applikationer som:
- Hjælper dig med ETL-proces
- Giver dig mulighed for at udføre filbehandling i realtid og streambehandling i realtid
- Brug til oprettelse af webapplikationer
- Brug i Amazon-produkter som Alexa Chatbots og Amazon Echo / Alexa
- Databehandling (realtids streaming analyse)
- Automatiske sikkerhedskopier af hverdagens opgaver
- Skalerbare bagenden (mobilapps, loT-enheder)
- Hjælper dig med at udføre backend-logik på serversiden
- Giver dig mulighed for at filtrere og transformere data
Bedste fremgangsmåder ved Lambda-funktion
Her er nogle af de bedste fremgangsmåder ved AWS Lambda-funktioner:
- Brug den rigtige "timeout".
- Brug funktionerne i lokal opbevaring, der er 500 MB i størrelse / temp-mappen
- Minimering af brugen af opstartkode, som ikke er direkte relateret til behandling af den aktuelle begivenhed.
- Du skal bruge indbygget CloudWatch-overvågning af dine Lambda-funktioner til at se og optimere anmodningens ventetid.
Hvornår skal man ikke bruge AWS Lambda
Følgende er situationen, hvor Lambda bestemt ikke er en ideel mulighed:
- Det er ikke hensigtsmæssigt at bruge AWS Lambda softwarepakker eller applikationer, der er afhængige af at kalde underliggende Windows RPC'er
- Hvis bruges til brugerdefinerede softwareapplikationer med licensaftaler som MS-Office-dokumentbehandling, Oracle-databaser osv.
- AWS Lambda bør ikke bruges til brugerdefineret hardwareproces, såsom GPU-acceleration, hardwareaffinitet.
Fordele ved at bruge AWS Lambda
Her er fordele / fordele ved at bruge AWS lambda:
- AWS Lambda er et meget fleksibelt værktøj at bruge
- Det hjælper dig med at give adgang til ressourcer, herunder VPC'er
- Forfatter direkte med WYSIWYG editor i konsollen.
- Du kan bruge det som et plugin til Eclipse og Visual Studio.
- Da det er serverløs arkitektur, behøver du ikke bekymre dig om administration eller klargøring af servere.
- Du behøver ikke at oprette nogen virtuel maskine.
- Hjælper udviklere med at køre og udføre kodens svar på begivenheder uden at opbygge nogen infrastruktur.
- Du skal bare bruge beregningstiden, kun når din kode kører.
- Du kan overvåge din kodeydelse i realtid via CloudWatch.
- Det giver dig mulighed for at køre din kode uden klargøring eller administrere andre servere
- Hjælper dig med kun at udføre koden, når det er nødvendigt
- Du kan skalere det automatisk for at håndtere et par anmodninger om dagen og endda understøtte mere end tusinder af anmodninger pr. Sekund.
- AWS Lambda kan konfigureres ved hjælp af eksterne hændelsestimere til at udføre planlagte opgaver.
- Lambda-funktionen i AWS skal konfigureres med ekstern begivenhed og timere så; det kan bruges til planlægning.
- Lambda-funktioner er statsløse, så den kan skaleres hurtigt.
- AWS Lambda er hurtig, så den udfører 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 helt afhængig af AWS for infrastrukturen; du kan ikke installere noget ekstra software, hvis din kode kræver det.
- Dets 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 timeout for kodeudførelse er kun 5 minutter.
Resumé
- Serverfri er et udtryk, der generelt henviser til serverløse applikationer.
- AWS Lambda er en sådan serverløs computertjeneste. Derfor behøver du ikke bekymre dig om, hvilke AWS-ressourcer der skal lanceres, eller hvordan de administrerer dem.
- En funktion er et program eller et script, der kører i AWS serverfri Lambda.
- Runtime tillader funktioner på forskellige sprog, der kører på det samme baseudførelsesmiljø.
- En begivenhedskilde er en AWS-tjeneste, såsom Amazon SNS, eller en tilpasset tjeneste.
- Lambda-lag er en vigtig distributionsmekanisme for biblioteker, brugerdefinerede driftstider og andre vigtige funktionsafhængigheder.
- Logstrøm giver dig mulighed for at kommentere din funktionskode med brugerdefinerede loggeerklæringer, som hjælper dig med at analysere udførelsesflowet og ydeevnen for 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.
- Implementere og administrere 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 Back-end-kode. Du kan ikke bruge den til at implementere en applikation.
- AWS Lambda hjælper dig med ETL-processen.
- Den bedste praksis for Lambda-funktion i AWS er at bruge den rigtige "timeout".
- Det er ikke hensigtsmæssigt at bruge AWS Lambda softwarepakker eller applikationer, der er afhængige af at kalde underliggende Windows RPC'er
- AWS Lambda er et meget fleksibelt værktøj.
- AWS Lambda-værktøj er ikke egnet til små projekter.
- En almindelig begivenhed, der udløses, når du bruger AWS Lambda, er Indsæt, opdatering og sletning af data Dynamo DB-tabel.