AWS Lambda-zelfstudie: uw gids voor Amazon Serverless Computing



Deze AWS Lambda-zelfstudie beschrijft het Serverless Compute Platform van AWS met details over Lambda-functie, Event Source, Lambda Pricing met een use case.

AWS Lambda-zelfstudie

Vandaag gaan we het hebben over AWS Lambda. AWS Lambda is een computerservice die wordt aangeboden door Amazon. Je moet nieuwsgierig zijn, want er zijn verschillende andere computerservices van AWS, zoals AWS EC2, AWS Elastic Beanstalk, AWS Opsworks enz., Waarom dan nog een andere computerservice? In deze AWS Lambda-tutorial ontdek je wat AWS Lambda is, waarom het wordt gebruikt en in welke gevallen je het moet overwegen.

Laten we eens kijken hoe Amazon AWS Lambda definieert en dan zullen we een diepe duik nemen in de belangrijkste concepten, een use-case begrijpen met een hands-on uiteindelijk.





Lambda Serverless computing - aws lambda-zelfstudie

Wat is AWS Lambda?

Amazon legt uit, AWS Lambda (& lambda) als een 'serverloze' computerservice, wat betekent dat de ontwikkelaars zich geen zorgen hoeven te maken over welke AWS-bronnen ze moeten starten, of hoe ze deze zullen beheren, ze zetten de code gewoon op lambda en het werkt , het is zo simpel! Het helpt je om je te concentreren op kerncompetentie, d.w.z. App-bouwen of de code.



Waar ga ik AWS Lambda gebruiken?

AWS Lambda voert uw back-endcode uit door automatisch de AWS-bronnen te beheren. Wanneer we ‘beheren’ zeggen, omvat dit het starten of beëindigen van instanties, gezondheidscontroles, automatisch schalen, bijwerken of patchen van nieuwe updates enz.

Dus, hoe werkt het?

De code die u wilt dat Lambda uitvoert, staat bekend als een Lambda-functie . Nu, zoals we weten, wordt een functie alleen uitgevoerd als deze wordt aangeroepen, toch? Hier, Gebeurtenisbron is de entiteit die een Lambda-functie activeert, en vervolgens wordt de taak uitgevoerd.

Laten we een voorbeeld nemen om het duidelijker te begrijpen.



hoe je dubbel cast naar int java

Stel dat u een app heeft voor het uploaden van afbeeldingen. Wanneer u nu een afbeelding uploadt, zijn er veel taken betrokken voordat u deze opslaat, zoals formaat wijzigen, filters toepassen, compressie enz.

Deze taak van het uploaden van een afbeelding kan dus worden gedefinieerd als een Gebeurtenisbron of de ‘trigger’ die de Lambda-functie aanroept, en dan kunnen al deze taken worden uitgevoerd via de Lambda-functie.

In dit voorbeeld hoeft een ontwikkelaar alleen de gebeurtenisbron te definiëren en de code te uploaden.

Laten we dit voorbeeld nu bekijken met echte AWS-bronnen,

Afb. Lambda use case met S3

Hier zullen we afbeeldingen in de vorm van objecten uploaden naar een S3-bucket. Dit uploaden van een afbeelding naar de S3-bucket, wordt een gebeurtenisbron of de ‘trigger’.

Het hele proces, zoals je kunt zien in het diagram, is onderverdeeld in 5 stappen, laten we ze allemaal begrijpen.

  1. De gebruiker uploadt een afbeelding (object) naar een bronbucket in S3 waaraan een melding is gekoppeld, voor Lambda.
  2. De melding wordt gelezen door S3 en deze beslist waar deze melding naartoe moet worden gestuurd.
  3. S3 stuurt de notificatie naar Lambda, deze notificatie fungeert als een aanroep van de lambda-functie.
  4. De uitvoeringsrol in Lambda kan worden gedefinieerd door IAM (Identity and Access Management) te gebruiken om toegangsrechten te geven voor de AWS-bronnen, voor dit voorbeeld zou het S3 zijn.
  5. Ten slotte roept het de gewenste lambda-functie op die werkt op het object dat is geüpload naar de S3-bucket.

Als u dit scenario traditioneel zou oplossen, samen met ontwikkeling, zou u mensen hebben ingehuurd voor het beheer van de volgende taken:

  • Grootte, inrichting en schaalvergroting van de groep servers
  • OS-updates beheren
  • Pas beveiligingspatches toe en
  • Bewaak al deze infrastructuur voor prestaties en beschikbaarheid.

Dit zou een dure, vervelende en vermoeiende taak zijn geweest, daarom is de behoefte aan AWS Lambda gerechtvaardigd.AWS Lambda is compatibel met Node.JS, Python en Java, dus u kunt uw bestand in een zip uploaden, een gebeurtenisbron definiëren en u bent klaar!

U kunt er meer over lezen S3 AWS hier voor een dieper begrip.

We weten nu -Hoe Lambda werkt enWat Lambda doet s .

Now, laten we begrijpen-

  • Waar Lambda gebruiken?
  • Welk doel dient Lambda, datandere AWS Compute-services niet?

Als je een oplossing voor een probleem zou ontwerpen, zou je moeten kunnen bepalen waar je Lambda kunt gebruiken, toch?

Als architect heb je dus de volgende mogelijkheden om een ​​taak uit te voeren:

converteer datumreeks naar datum
  • AWS EC2
  • AWS elastische bonenstaak
  • AWS OpsWorks
  • AWS Lambda

Laten we de bovenstaande use-case als voorbeeld nemen en begrijpen waarom we Lambda hebben gekozen om het op te lossen.

AWS OpsWorks en AWS ElasticBeanstalk worden gebruikt om een ​​app te implementeren, dus onze use case is niet om een ​​app te maken , maar om een ​​back-endcode uit te voeren.

Waarom dan niet EC2?

Als je EC2 zou gebruiken, zou je alles moeten ontwerpen, d.w.z. load balancer, EBS-volumes, softwarestacks enz. In lambda hoef je je nergens zorgen over te maken, voer gewoon je code in en AWS regelt de rest!

Bijvoorbeeld , in EC2 zou je de softwarepakketten op je virtuele machine installeren die je code zouden ondersteunen, maar in Lambda hoef je je geen zorgen te maken over een VM, voer gewoon gewone code in en Lambda zal het voor je uitvoeren.

Maar als je code uren zal draaien en je verwacht een continue stroom van verzoeken, dan zou je waarschijnlijk voor EC2 moeten gaan, omdat de architectuur van Lambda bedoeld is voor een sporadische soort werkdruk, waarbij er wat rustige uren en wat pieken zullen zijn in de nr. van verzoeken.

Bijvoorbeeld , het loggen van de e-mailactiviteit voor bijvoorbeeld een klein bedrijf, zou overdag meer activiteit zien dan 's nachts, ook kunnen er dagen zijn dat er minder e-mails moeten worden verwerkt, en soms kan de hele wereld u beginnen te e-mailen! In beide gevallen staat Lambda voor u klaar.

Gezien deze use case voor een groot sociaal netwerkbedrijf, waar de e-mails nooit eindigen omdat het een enorm gebruikersbestand heeft, is Lambda misschien niet de juiste keuze.

U kunt er meer over lezen EC2 AWS hier voor een dieper begrip.

Beperkingen van AWS Lambda

Sommige beperkingen zijn hardware-specifiek en sommige zijn gebonden aan de architectuur, laten we ze allemaal bespreken.

Hardware beperkingen inclusief de schijfgrootte, die beperkt is tot 512 MB, kan het geheugen variëren tussen 128 MB en 1536 MB. Dan zijn er nog een aantal andere, zoals de time-out voor de uitvoering kan worden gemaximaliseerd tot slechts 5 minuten, de payload van uw request body mag niet meer zijn dan 6 MB en de body van uw request is 128 KB. De payload van de hoofdtekst van het verzoek is vergelijkbaar met de gegevens die u verzendt met een 'GET' of 'PUT' -verzoek in HTTP, waarbij de hoofdtekst van het verzoek het type verzoek, de headers enz. Zou zijn.

Eigenlijk zijn dit geen beperkingen, maar zijn het de ontwerpgrenzen die in de architectuur van Lambda zijn gesteld, dus als uw use case hier niet bij past, heeft u altijd de andere AWS compute services tot uw beschikking.

We bespraken in deze AWS Lambda Tutorial dat het uitvoeren van taken in Lambda 'niet' vervelend en vermoeiend is. Laten we nu ook het onkostengedeelte dekken.

Prijzen in AWS Lambda

Zoals de meeste AWS-services, is AWS Lambda ook een service voor betalen per gebruik, wat betekent dat u alleen betaalt wat u gebruikt, daarom worden de volgende parameters in rekening gebracht

  • Het aantal verzoeken die je maakt voor je lambda-functie
  • De looptijd waarvoor uw code wordt uitgevoerd.

Verzoeken

  • U betaalt voor het aantal verzoeken dat u doet voor al uw lambda-functies.
  • AWS Lambda telt een verzoek elke keer dat het wordt uitgevoerd als reactie op een gebeurtenisbron of aanroepoproep, inclusief test wordt aangeroepen vanaf de console. Laten we nu eens naar de prijzen kijken:
    • De eerste 1 miljoen aanvragen, elke maand, zijn gratis.
    • 0,20 $ per miljoen verzoeken daarna.

Looptijd

  • De duur wordt berekend vanaf het moment dat uw code begint met uitvoeren tot het moment dat deze terugkeert of eindigt, en wordt naar boven afgerond op de dichtstbijzijnde 100 ms.
  • De prijs is afhankelijk van de hoeveelheid geheugen die u aan uw functie toewijst. Voor elke gebruikte GB-seconde wordt $ 0,00001667 in rekening gebracht.

* Bron: officiële website van AWS

Als je tot hier hebt bereikt, ben je helemaal klaar voor een Hands-on in Lambda. Laten we plezier maken!

Hands-on: AWS Lambda DIY

Laten we een Lambda-functie maken die logt 'Een object is toegevoegd' zodra u een object aan een specifieke bucket in S3 hebt toegevoegd.

Stap 1: Selecteer AWS Lambda in de AWS-beheerconsole onder de sectie Compute.

Stap 2: Klik in de AWS Lambda Console op “Create a Lambda function”.

hoe u dynamische webpagina's maakt

Stap 3: Op de volgende pagina moet je een blauwdruk selecteren. We zullen bijvoorbeeld de blanco functie selecteren voor onze use-case.

Stap 4: Op de volgende pagina zal je (1) een trigger instellen, aangezien we aan S3 gaan werken, (2) de S3-trigger selecteren en vervolgens (3) op Volgende klikken.

Stap5: Vul op de configuratiepagina de details in. U kunt uw eigen code invoeren, of u kunt dezelfde code uit deze use-case kopiëren. Vul daarna de handler en rol in, laat de geavanceerde instellingen zoals ze zijn, klik uiteindelijk op Volgende.

Stap6: Bekijk op de volgende pagina alle informatie en klik op 'Functie aanmaken'.

Stap7: Nu we de functie voor S3-bucket hebben gemaakt, zou u op het moment dat u een bestand aan uw S3-bucket toevoegt, een logboek voor hetzelfde moeten krijgen in CloudWatch, een bewakingsservice van AWS.

Gefeliciteerd!Je hebt de Lambda-functie succesvol uitgevoerd.

Ik hoop dat je genoten hebt van de diepe duik in de AWS Lambda Tutorial. Het is een van de meest gewenste kennisgebieden in het AWS-ecosysteem voor functies zoals Solutions Architect, Cloud Engineer, DevOps Engineer. Hier is een verzameling van om je voor te bereiden op je volgende AWS-sollicitatiegesprek.

Als je deze AWS Lambda Tutorial relevant vond, kun je Edureka's live en door een instructeur geleide cursus bekijken op , mede gecreëerd door praktijkmensen uit de industrie.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.