Wat is AWS Lambda? Lambda-functie met voorbeelden

Inhoudsopgave:

Anonim

Laten we, voordat we de functie AWS Lambda beginnen, begrijpen:

Wat is serverloos?

Serverloos is een term die doorgaans verwijst naar serverloze toepassingen. Serverloze applicaties zijn applicaties die geen servervoorziening nodig hebben en geen servers hoeven te beheren.

Wat is AWS Lambda?

AWS Lambda is een gebeurtenisgestuurd, serverloos computerplatform dat wordt aangeboden door Amazon als onderdeel van Amazon Web Services. Daarom hoeft u zich geen zorgen te maken over welke AWS-bronnen u moet starten of hoe u deze wilt beheren. In plaats daarvan moet u de code op Lambda plaatsen en deze wordt uitgevoerd.

In AWS Lambda wordt de code uitgevoerd op basis van de respons van gebeurtenissen in AWS-services zoals bestanden toevoegen / verwijderen in S3-bucket, HTTP-verzoek van Amazon API-gateway, enz. Amazon Lambda kan echter alleen worden gebruikt om achtergrondtaken uit te voeren.

De AWS Lambda-functie helpt u om u te concentreren op uw kernproduct en bedrijfslogica in plaats van het beheren van de toegangscontrole van het besturingssysteem (OS), het patchen van het besturingssysteem, de juiste grootte, provisioning, schaling, enz.

In deze AWS Lambda-tutorial voor beginners leer je:

  • Hoe werkt AWS Lambda?
  • Gebeurtenissen die AWS Lambda
  • AWS Lambda-concepten
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS elastische bonenstaak
  • Gebruik gevallen van AWS Lambda
  • Best practices van Lambda-functie
  • Wanneer u AWS Lambda
  • Voordelen van het gebruik van AWS Lambda
  • Beperkingen van AWS Lambda

Hoe werkt AWS Lambda?

Het volgende AWS Lambda-voorbeeld met blokschema legt de werking van AWS Lambda in een paar eenvoudige stappen uit:

Stap 1: Upload eerst uw AWS Lambda-code in elke taal die wordt ondersteund door AWS Lambda. Java, Python, Go en C # zijn enkele van de talen die worden ondersteund door de AWS Lambda-functie.

Stap 2: Dit zijn enkele AWS-services waarmee u AWS Lambda kunt activeren.

Stap 3: AWS Lambda helpt u bij het uploaden van code en de gebeurtenisdetails waarop deze moet worden geactiveerd.

Stap 4: Voert AWS Lambda-code uit wanneer deze wordt geactiveerd door AWS-services:

Stap 5: AWS laadt alleen op als de AWS-lambda-code wordt uitgevoerd, en niet anders.

Dit gebeurt in de volgende scenario's:

  • Upload bestanden in een S3-bucket
  • Wanneer HTTP get / post-eindpunt-URL wordt geraakt
  • Voor het toevoegen / wijzigen en verwijderen van Dynamo DB-tabellen
  • Tijdens het verzamelen van gegevensstromen
  • Push notificatie
  • Hosting van website
  • E-mail verzenden

Opmerking: u moet onthouden dat u alleen kosten in rekening brengt voor AWS-services wanneer de AWS Lambda-code wordt uitgevoerd, anders hoeft u niets te betalen.

Gebeurtenissen die AWS Lambda

Hier zijn gebeurtenissen die worden geactiveerd wanneer u AWS Lambda gebruikt.

  • Invoegen, bijwerken en verwijderen van gegevens Dynamo DB-tabel
  • Om pushmeldingen in SNS op te nemen
  • Om te zoeken naar loggeschiedenis in CloudTrail
  • Binnenkomst in een S3-object
  • DynamoDB kan AWS Lambda activeren wanneer er gegevens zijn toegevoegd, gewijzigd en verwijderd in de tabel.
  • Helpt u bij het plannen van de gebeurtenis om de taak volgens een regelmatig tijdspatroon uit te voeren.
  • Wijzigingen aan objecten in S3-buckets
  • Meldingen verzonden vanaf Amazon SNS.
  • AWS Lambda kan worden gebruikt om de CloudTrail-logboeken te verwerken
  • Met API Gateway kunt u AWS Lambda activeren op GET / POST-methoden.

AWS Lambda-concepten

Functie:

Een functie is een programma of een script dat wordt uitgevoerd in AWS Lambda. Lambda geeft aanroepgebeurtenissen door aan uw functie, die een gebeurtenis verwerkt en zijn reactie retourneert.

Looptijden:

Runtime maakt functies in verschillende talen mogelijk die op dezelfde basisuitvoeringsomgeving draaien. Dit helpt u bij het configureren van uw functie tijdens runtime. Het komt ook overeen met uw geselecteerde programmeertaal.

Evenement bron:

Een gebeurtenisbron is een AWS-service, zoals Amazon SNS, of een aangepaste service. Deze triggersfunctie helpt u bij het uitvoeren van de logica ervan.

Lambda-lagen:

Lambda-lagen zijn een belangrijk distributiemechanisme voor bibliotheken, aangepaste runtimes en andere belangrijke functie-afhankelijkheden. Deze AWS-component helpt u ook om uw ontwikkelfunctiecode afzonderlijk te beheren van de onveranderlijke code en bronnen die deze gebruikt.

Logboekstromen:

Met logboekstroom kunt u uw functiecode annoteren met aangepaste logboekinstructies die u helpen bij het analyseren van de uitvoeringsstroom en prestaties van uw AWS Lambda-functies.

Hoe AWS Lambda te gebruiken

Nu zullen we leren hoe we AWS Lambda kunnen gebruiken met AWS Lambda-voorbeeld:

Stap 1 ) Ga naar https://aws.amazon.com/lambda/ en ga aan de slag

Stap 2 ) Maak een account aan of log in met uw bestaande account

Stap 3 ) Op de volgende Lambda-pagina,

  1. Bewerk de code
  2. Klik op Uitvoeren

Stap 4 ) U ziet uitvoer

AWS Lambda VS AWS EC2

Hier zijn enkele belangrijke verschillen tussen AWS Lambda en EC2.

Parameters AWS Lambda AWS EC2
Definitie AWS Lambda is een Platform as a Service (PaaS). Het helpt u bij het uitvoeren en uitvoeren van uw backend-code. AWS EC2 is een Infrastructure as a Service (laaS). Het biedt gevirtualiseerde computerbronnen.
Flexibiliteit Biedt geen enkele flexibiliteit om in te loggen bij rekeninstanties. Hiermee kunt u een aangepast besturingssysteem of taalruntime kiezen. Biedt de flexibiliteit om de verscheidenheid aan instances, aangepaste besturingssystemen, beveiligingspatches en netwerk enz. Te selecteren.
Installatieproces U moet uw omgeving selecteren waar u de code wilt uitvoeren en de code in AWS Lambda pushen. Voor de eerste keer in EC2 moet je het besturingssysteem kiezen en alle benodigde software installeren en vervolgens je code in EC2 pushen.
Omgevingsbeperkingen Het is beperkt tot enkele talen. Geen omgevingsbeperkingen.

AWS Lambda VS AWS elastische bonenstaak

Hier zijn enkele belangrijke verschillen tussen AWS Lambda en Elastic Beanstalk.

Parameters AWS elastische bonenstaak AWS Lambda
Hoofdtaak Implementeer en beheer de apps op AWS Cloud zonder je zorgen te maken over de infrastructuur waarop die applicaties draaien. AWS Lambda wordt gebruikt voor het uitvoeren en uitvoeren van uw back-endcode. U kunt het niet gebruiken om een ​​applicatie te implementeren.
Selectie van AWS-bronnen Het geeft u de vrijheid om AWS-bronnen te selecteren; U kunt bijvoorbeeld de EC2-instantie kiezen die optimaal is voor uw toepassing. U kunt de AWS-resources niet selecteren, zoals een type EC2-instantie, Lambda biedt resources op basis van uw workload.
Type systeem Het is een stateful systeem. Het is een staatloos systeem.

Gebruik gevallen van AWS Lambda

AWS Lambda gebruikt voor een breed scala aan toepassingen, zoals:

  • Helpt u bij het ETL-proces
  • Hiermee kunt u real-time bestandsverwerking en real-time streamverwerking uitvoeren
  • Gebruiken voor het maken van webtoepassingen
  • Gebruik in Amazon-producten zoals Alexa Chatbots en Amazon Echo / Alexa
  • Gegevensverwerking (realtime streaminganalyse)
  • Geautomatiseerde back-ups van alledaagse taken
  • Schaalbare backends (mobiele apps, loT-apparaten)
  • Helpt u bij het uitvoeren van backend-logica aan de serverzijde
  • Hiermee kunt u gegevens filteren en transformeren

Best practices van Lambda-functie

Hier zijn enkele best practices van AWS Lambda-functies:

  • Gebruik de juiste "time-out".
  • Gebruik de functies van lokale opslag die 500 MB groot is in de map / temp
  • Minimaliseren van het gebruik van opstartcode die niet direct gerelateerd is aan het verwerken van de huidige gebeurtenis.
  • U moet de ingebouwde CloudWatch-monitoring van uw Lambda-functies gebruiken om verzoeklatenties te bekijken en te optimaliseren.

Wanneer u AWS Lambda

Hieronder volgen de situatie waarin Lambda zeker geen ideale optie is:

  • Het is niet gepast om AWS Lambda-softwarepakketten of -toepassingen te gebruiken die afhankelijk zijn van het aanroepen van onderliggende Windows RPC's
  • Wordt gebruikt voor aangepaste softwaretoepassingen met licentieovereenkomsten zoals MS-Office-documentverwerking, Oracle-databases, enz.
  • AWS Lambda mag niet worden gebruikt voor aangepaste hardwareprocessen zoals GPU-versnelling, hardware-affiniteit.

Voordelen van het gebruik van AWS Lambda

Hier zijn de voor- / voordelen van het gebruik van AWS lambda:

  • AWS Lambda is een zeer flexibele tool om te gebruiken
  • Het helpt u om toegang te verlenen tot bronnen, waaronder VPC's
  • Schrijf rechtstreeks met de WYSIWYG-editor in de console.
  • U kunt het gebruiken als plug-in voor Eclipse en Visual Studio.
  • Omdat het een serverloze architectuur is, hoeft u zich geen zorgen te maken over het beheren of inrichten van servers.
  • U hoeft geen virtuele machine in te stellen.
  • Helpt ontwikkelaars om de reactie van de code op gebeurtenissen uit te voeren en uit te voeren zonder enige infrastructuur te bouwen.
  • U hoeft dit alleen te doen voor de benodigde rekentijd, alleen wanneer uw code wordt uitgevoerd.
  • U kunt uw codeprestaties in realtime volgen via CloudWatch.
  • Het stelt u in staat uw code uit te voeren zonder provisie of om een ​​andere server te beheren
  • Helpt u om de code alleen uit te voeren als dat nodig is
  • U kunt het automatisch schalen om een ​​paar verzoeken per dag te verwerken en zelfs meer dan duizenden verzoeken per seconde te ondersteunen.
  • AWS Lambda kan worden geconfigureerd met behulp van externe gebeurtenistimers om geplande taken uit te voeren.
  • Lambda-functie in AWS moet worden geconfigureerd met externe gebeurtenis en timers dus; het kan worden gebruikt voor planning.
  • Lambda-functies zijn stateless, zodat deze snel kunnen worden geschaald.
  • AWS Lambda is snel, dus het zal uw code binnen milliseconden uitvoeren.

Beperkingen van AWS Lambda

Hier zijn de nadelen / nadelen van het gebruik van AWS Lambda:

  • AWS Lambda-tool is niet geschikt voor kleine projecten.
  • AWS Lambda vertrouwt volledig op AWS voor de infrastructuur, dus u kunt geen extra software installeren als uw code dit vereist.
  • Gelijktijdige uitvoering is beperkt tot 100
  • AWS Lambda was voor de infrastructuur volledig afhankelijk van AWS; u kunt niets extra software installeren als uw code dit vereist.
  • Het geheugenvolume kan variëren van 128 tot 1536 MB.
  • Gebeurtenisverzoek mag niet groter zijn dan 128 KB.
  • Lambda-functies helpen u om hun logboeken alleen in CloudWatch te schrijven. Dit is de enige tool waarmee u uw functies kunt controleren of problemen kunt oplossen.
  • De time-out voor het uitvoeren van de code is slechts 5 minuten.

Overzicht

  • Serverloos is een term die doorgaans verwijst naar serverloze toepassingen.
  • AWS Lambda is zo'n serverloze computerservice. Daarom hoeft u zich geen zorgen te maken over welke AWS-bronnen u moet starten of hoe ze deze zullen beheren.
  • Een functie is een programma of een script dat wordt uitgevoerd in AWS serverloze Lambda.
  • Runtime maakt functies in verschillende talen mogelijk die op dezelfde basisuitvoeringsomgeving draaien.
  • Een gebeurtenisbron is een AWS-service, zoals Amazon SNS, of een aangepaste service.
  • Lambda-lagen zijn een belangrijk distributiemechanisme voor bibliotheken, aangepaste runtimes en andere belangrijke functie-afhankelijkheden.
  • Met logboekstroom kunt u uw functiecode annoteren met aangepaste logboekinstructies die u helpen bij het analyseren van de uitvoeringsstroom en prestaties van uw Lambda-functies.
  • AWS Lambda is een Platform as a Service (PaaS). Het helpt u bij het uitvoeren en uitvoeren van uw backend-code.
  • AWS EC2 is een Infrastructure as a Service (laaS). Het biedt gevirtualiseerde computerbronnen.
  • Implementeer en beheer de apps op AWS Cloud zonder je zorgen te maken over de infrastructuur waarop die applicaties draaien.
  • AWS Lambda wordt gebruikt voor het uitvoeren en uitvoeren van uw back-endcode. U kunt het niet gebruiken om een ​​applicatie te implementeren.
  • AWS Lambda helpt u bij het ETL-proces.
  • De beste praktijk van de Lambda-functie in AWS is om de juiste "time-out" te gebruiken.
  • Het is niet gepast om AWS Lambda-softwarepakketten of -toepassingen te gebruiken die afhankelijk zijn van het aanroepen van onderliggende Windows RPC's
  • AWS Lambda is een zeer flexibele tool.
  • AWS Lambda-tool is niet geschikt voor kleine projecten.
  • Een veel voorkomende gebeurtenis die wordt geactiveerd wanneer u AWS Lambda gebruikt, is het invoegen, bijwerken en verwijderen van gegevens Dynamo DB-tabel.