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.

  • โ˜๏ธ Serverloos model: AWS Lambda voert code uit zonder servers te hoeven provisioneren of beheren, waardoor het patchen van het besturingssysteem, schalen en capaciteitsplanning overbodig worden.
  • โšก Gebeurtenisgestuurde uitvoering: Functies worden geactiveerd vanuit AWS-services zoals S3. DynamoDBAPI Gateway en SNS worden alleen uitgevoerd wanneer er een gebeurtenis plaatsvindt.
  • ๐Ÿงฉ Taalondersteuning: Lambda ondersteunt Node.js. Python, JavaGo, C# en Ruby, plus aangepaste runtimes voor andere talen.
  • ๐Ÿ’ฐ Betalen per gebruik: BillDeze service is alleen van toepassing tijdens de uitvoering van de code, gemeten in milliseconden, met een permanente maandelijkse gratis limiet van รฉรฉn miljoen aanvragen.
  • ๏ธ Kernconcepten: Functies, runtimes, gebeurtenisbronnen, lagen en logstreams bepalen hoe Lambda code uitvoert en beheert.
  • ๐Ÿค– AI-assistentie: GitHub Copilot en Amazon Q genereert Lambda-code, terwijl Lambda de generatieve AI-inferentie orkestreert. Amazon Bedrock.

Wat is AWS Lambda?

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:

AWS Lambda-blokdiagram

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.

Hoe AWS Lambda te gebruiken

Stap 2) Maak een Account Aan

Maak vervolgens een account aan of log in met je bestaande account.

Hoe AWS Lambda te gebruiken

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.

Hoe AWS Lambda te gebruiken

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.

Veelgestelde vragen

AWS Lambda biedt native ondersteuning voor Node.js. Python, JavaGo, C#, PowerShell en Ruby. Dankzij een runtime-API en ondersteuning voor containerimages kun je bijna elke andere taal gebruiken, waardoor teams zelden beperkt worden door hun favoriete technologieรซn.

AWS Lambda biedt een permanente gratis limiet van รฉรฉn miljoen aanvragen en 400,000 GB-seconden rekentijd per maand. Daarboven betaal je alleen voor de aanvragen en de rekentijd die je code daadwerkelijk gebruikt, gefactureerd per milliseconde.

Een koude start is de korte vertraging die optreedt wanneer Lambda een nieuwe uitvoeringsomgeving initialiseert voor een functie die inactief is geweest. Je kunt deze vertraging verminderen met provisioned concurrency, kleinere pakketten of SnapStart. Java functies.

Ja. Naast het uploaden van een ZIP-archief, biedt Lambda de mogelijkheid om een โ€‹โ€‹functie te verpakken als een containerimage van maximaal 10 GB. Dit is geschikt voor grotere afhankelijkheden en machine learning-bibliotheken, terwijl de functionaliteit behouden blijft.ping hetzelfde gebeurtenisgestuurde, serverloze uitvoeringsmodel.

Lambda voert korte, gebeurtenisgestuurde functies uit met automatische schaling en facturering per milliseconde. AWS Fargate voert langere, gecontaineriseerde workloads uit zonder dat u servers hoeft te beheren. Kies Lambda voor snelle reacties op gebeurtenissen en Fargate voor stabiele, langlopende containertaken.

Ja. Lambda wordt vaak gebruikt in AI-toepassingen door middel van lichtgewicht inferentie en het coรถrdineren van aanroepen naar services zoals... Amazon Bedrock en SageMaker. Ondersteuning voor containerimages helpt bij het verpakken van machine learning-bibliotheken, terwijl Lambda de schaalbaarheid van de generatieve AI-pipeline regelt.

Ja. GitHub-copiloot schrijft handlerfuncties op basis van een opmerking of naam, terwijl Amazon Q Developer biedt nu ondersteuning voor AWS-compatibele IAM-beleidsregels, CloudFormation en SDK-aanroepen, waardoor serverless ontwikkeling wordt versneld.

Wijs aan elke functie een IAM-rol met minimale privileges toe, sla geheimen op in versleutelde omgevingsvariabelen of Secrets Manager en plaats gevoelige functies in een VPC. CloudWatch en CloudTrail registreren vervolgens de activiteiten voor monitoring en auditing.

Vat dit bericht samen met: