Wat is AWS Lambda? Lambda-functie met voorbeelden
โก Slimme samenvatting
AWS Lambda is een gebeurtenisgestuurd, serverloos computerplatform van Amazon Webservices die uw code uitvoeren als reactie op triggers, waarbij de inrichting, schaling en het serverbeheer automatisch worden afgehandeld, zodat u zich volledig kunt concentreren op de bedrijfslogica.

Voordat we AWS Lambda gaan verkennen, is het handig om te begrijpen wat serverloos inhoudt.
Wat is serverloos?
Serverless is een term die over het algemeen verwijst naar serverloze applicaties. Serverloze applicaties zijn applicaties die geen servervoorziening nodig hebben en waarbij u geen servers hoeft te beheren.
Wat is AWS Lambda?
AWS Lambda is een gebeurtenisgestuurd, serverloos computerplatform dat wordt aangeboden door Amazon als onderdeel van Amazon Webservices. U hoeft zich dus geen zorgen te maken over welke AWS-resources u moet starten of hoe u ze beheert. U hoeft alleen de code op Lambda te plaatsen en deze wordt uitgevoerd.
In AWS Lambda wordt de code uitgevoerd op basis van de respons van gebeurtenissen in AWS-services, zoals het toevoegen of verwijderen van bestanden in een S3-bucket of een HTTP-verzoek. Amazon API Gateway en soortgelijke gebeurtenissen. Echter, Amazon Lambda kan alleen worden gebruikt om achtergrondtaken uit te voeren.
Met een AWS Lambda-functie kunt u zich concentreren op uw kernproduct en bedrijfslogica in plaats van op het beheren van toegang tot het besturingssysteem, het patchen van het besturingssysteem, het optimaliseren van de grootte, het inrichten, schalen, enzovoort.
Hoe werkt AWS Lambda?
Het volgende AWS Lambda-voorbeeld met blokdiagram legt de werking van AWS Lambda in een paar eenvoudige stappen uit:
Stap 1: Upload eerst uw AWS Lambda-code in elke taal die door AWS Lambda wordt ondersteund. Java, PythonGo en C# zijn enkele van de talen die door de AWS Lambda-functie worden ondersteund.
Stap 2: Dit zijn enkele AWS-services waarmee u AWS Lambda kunt activeren.
Stap 3: Met AWS Lambda kunt u code en de gebeurtenisdetails uploaden die ervoor zorgen dat deze wordt geactiveerd.
Stap 4: Voert AWS Lambda-code uit wanneer deze wordt geactiveerd door AWS-services.
Stap 5: AWS brengt alleen kosten in rekening wanneer de AWS Lambda-code wordt uitgevoerd, en niet anders.
Dit zal gebeuren in de volgende scenario's:
- Upload bestanden in een S3-bucket
- Wanneer een HTTP GET/POST-eindpunt URL wordt geraakt
- Voor het toevoegen, wijzigen en verwijderen van DynamoDB-tabellen
- Tijdens het verzamelen van gegevensstromen
- Push notificatie
- Hosting van website
- E-mail verzenden
Let op: Houd er rekening mee dat u alleen kosten in rekening gebracht krijgt voor AWS-services wanneer de AWS Lambda-code wordt uitgevoerd; anders hoeft u niets te betalen.
Gebeurtenissen die AWS Lambda activeren
Hieronder staan โโde gebeurtenissen die worden geactiveerd wanneer je AWS Lambda gebruikt.
- Gegevens invoegen, bijwerken en verwijderen in een DynamoDB-tabel.
- Om pushmeldingen op te nemen in SNS
- Om te zoeken naar loggeschiedenis in CloudTrail
- Binnendringen in een S3-object
- DynamoDB kan AWS Lambda activeren wanneer er gegevens in de tabel worden toegevoegd, gewijzigd en verwijderd.
- Hiermee kunt u de gebeurtenis inplannen om de taak op een vast tijdstip 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 via GET/POST-methoden.
AWS Lambda Concepts
Functionaliteit: Een functie is een programma of script dat draait in AWS Lambda. Lambda geeft aanroepgebeurtenissen door aan uw functie, die een gebeurtenis verwerkt en het antwoord retourneert.
Looptijden: Runtime maakt het mogelijk dat functies in verschillende talen op dezelfde basisuitvoeringsomgeving draaien. Dit helpt je bij het configureren van je functie in de runtime. Het komt ook overeen met je geselecteerde instellingen. programmeertaal.
Bron van gebeurtenis: Een gebeurtenisbron is een AWS-service, zoals Amazon SNS, of een aangepaste service. Deze trigger helpt de functie bij het uitvoeren van de bijbehorende logica.
Lambda-lagen: Lambda-lagen zijn een belangrijk distributiemechanisme voor bibliotheken, aangepaste runtimes en andere belangrijke functieafhankelijkheden. Deze AWS-component helpt u ook om uw ontwikkelingsfunctiecode afzonderlijk te beheren van de onveranderlijke code en bronnen die deze gebruikt.
Logstreams: Met Log Stream kunt u uw functiecode annoteren met aangepaste logberichten, waarmee u de uitvoeringsstroom en prestaties van uw AWS Lambda-functies kunt analyseren.
Hoe AWS Lambda te gebruiken
Nu gaan we leren hoe we AWS Lambda kunnen gebruiken aan de hand van een AWS Lambda-voorbeeld:
Stap 1) Open AWS Lambda URL
Ga naar https://aws.amazon.com/lambda/ En ga aan de slag.
Stap 2) Maak een Account Aan
Maak vervolgens een account aan of log in met je bestaande account.
Stap 3) Bewerk de code en klik op Uitvoeren.
Bewerk de code op de volgende Lambda-pagina en klik op Uitvoeren.
Stap 4) Controleer de uitvoer
Je ziet dan de output.
AWS Lambda VS AWS EC2
Hieronder volgen enkele belangrijke verschillen tussen AWS Lambda en EC2.
| Kenmerken | 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 (IaaS). Het biedt gevirtualiseerde computerbronnen. |
| Flexibiliteit | Biedt geen flexibiliteit bij het inloggen op rekeninstanties. U kunt wel een aangepast besturingssysteem of programmeertaal kiezen. | Biedt de flexibiliteit om te kiezen uit verschillende instanties, aangepaste besturingssystemen, beveiligingspatches, netwerkconfiguraties, enzovoort. |
| Installatie proces | Je moet de omgeving selecteren waarin je de code wilt uitvoeren en de code vervolgens naar AWS Lambda pushen. | Voor de eerste keer in EC2 moet u het besturingssysteem kiezen, alle benodigde software installeren en vervolgens uw code in EC2 pushen. |
| Omgevingsbeperkingen | Het is beperkt tot een paar talen. | Geen omgevingsbeperkingen. |
AWS Lambda versus AWS Elastic Beanstalk
Hieronder vind je enkele belangrijke verschillen tussen AWS Lambda en Elastic. Beanstalk.
| Kenmerken | AWS-elastisch Beanstalk | AWS Lambda |
| Hoofdtaak | Implementeer en beheer de apps op AWS Cloud zonder u zorgen te hoeven maken over de infrastructuur waarop deze applicaties draaien. | AWS Lambda wordt gebruikt voor het uitvoeren van je back-endcode. Je kunt het niet gebruiken om een โโapplicatie te implementeren. |
| Selectie van AWS-bronnen | Het geeft je de vrijheid om AWS-resources te selecteren; je kunt bijvoorbeeld een EC2-instantie kiezen die optimaal is voor jouw toepassing. | Je kunt de AWS-resources niet selecteren, zoals een type EC2-instantie; Lambda biedt resources aan op basis van je workload. |
| Soort systeem | Het is een stateful systeem. | Het is een staatloos systeem. |
Gebruiksscenario's van AWS Lambda
AWS Lambda wordt gebruikt voor een breed scala aan toepassingen, zoals:
- Helpt je met de ETL-proces
- Hiermee kunt u realtime bestandsverwerking en realtime streamverwerking uitvoeren
- Gebruik voor het maken van webapplicaties
- Gebruiken Amazon producten zoals Alexa Chatbots en Amazon Echo/Alexa
- Gegevensverwerking (realtime streaminganalyse)
- Geautomatiseerde back-ups van dagelijkse taken
- Schaalbare back-ends (mobiele apps, IoT-apparaten)
- Helpt u bij het uitvoeren van backend-logica aan de serverzijde
- Hiermee kunt u gegevens filteren en transformeren.
Best practices van de Lambda-functie
Hieronder volgen enkele best practices voor AWS Lambda-functies:
- Gebruik de juiste โtime-outโ.
- Maak gebruik van de lokale opslagcapaciteit van 500 MB in de map /temp.
- Beperk het gebruik van opstartcode die niet direct verband houdt met de verwerking van de huidige gebeurtenis.
- U moet de ingebouwde CloudWatch-monitoring van uw Lambda-functies gebruiken om de latenties van verzoeken te bekijken en te optimaliseren.
Wanneer mag u AWS Lambda niet gebruiken?
Hieronder volgen situaties waarin Lambda absoluut geen ideale optie is:
- Het is niet geschikt om AWS Lambda te gebruiken voor softwarepakketten of applicaties die afhankelijk zijn van het aanroepen van onderliggende systemen. Windows RPC's.
- Als het wordt gebruikt voor maatwerksoftwaretoepassingen met licentieovereenkomsten, zoals documentverwerking voor MS Office, Oracle databanken, enz.
- AWS Lambda is niet geschikt voor aangepaste hardwareprocessen zoals GPU-acceleratie en hardware-affiniteit.
Voordelen van het gebruik van AWS Lambda
Hieronder vind je de voordelen van het gebruik van AWS Lambda:
- AWS Lambda is een zeer flexibel hulpmiddel.
- Het helpt je om toegang te verlenen tot resources, waaronder VPC's.
- De auteur kan rechtstreeks contact opnemen met een WYSIWYG-redacteur in de console.
- Je kunt het gebruiken als plug-in voor Eclipse en Visual Studio.
- Omdat het een serverloze architectuur betreft, hoeft u zich geen zorgen te maken over het beheren of inrichten van servers.
- U hoeft er geen in te stellen Virtuele machine.
- Helpt ontwikkelaars de reactie van de code op gebeurtenissen uit te voeren en uit te voeren zonder enige infrastructuur te bouwen.
- Je betaalt alleen voor de rekentijd die nodig is, en alleen wanneer je code wordt uitgevoerd.
- U kunt uw codeprestaties in realtime volgen via CloudWatch.
- Hiermee kunt u uw code uitvoeren zonder dat u een andere server hoeft te configureren of beheren.
- Hiermee kunt u de code alleen uitvoeren wanneer dat nodig is.
- U kunt het automatisch schalen om een โโpaar verzoeken per dag af te handelen 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.
- Een Lambda-functie in AWS moet geconfigureerd worden met externe gebeurtenissen en timers, zodat deze gebruikt kan worden voor het plannen van taken.
- Lambda-functies zijn stateless, waardoor ze snel schaalbaar zijn.
- AWS Lambda is snel en voert uw code binnen milliseconden uit.
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 is volledig afhankelijk van AWS voor de infrastructuur, dus je kunt geen extra software installeren als je code dat vereist.
- Gelijktijdige uitvoering heeft een standaardlimiet van 1,000 per regio, die op verzoek kan worden verhoogd.
- Het geheugenvolume kan variรซren tussen 128 MB en 10,240 MB.
- Evenementverzoek mag niet groter zijn dan 128 KB.
- Lambda-functies helpen u om hun logboeken alleen in CloudWatch te schrijven. Dit is het enige hulpmiddel waarmee u uw functies kunt controleren of problemen kunt oplossen.
- De time-out voor de uitvoering van de code is beperkt tot 15 minuten.




