Wat is AWS Lambda? Lambda-functie met voorbeelden
Laten we, voordat de AWS Lambda-functie werkt, het volgende begrijpen:
Wat is serverloos?
Serverloos is een term die doorgaans verwijst naar serverloze applicaties. 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 Webservices. Daarom hoeft u zich geen zorgen te maken over welke AWS-bronnen u moet lanceren, of hoe u deze gaat beheren. In plaats daarvan moet je de code op Lambda plaatsen en deze wordt uitgevoerd.
In AWS Lambda wordt de code uitgevoerd op basis van de reactie van gebeurtenissen in AWS-services, zoals het toevoegen/verwijderen van bestanden in de S3-bucket, HTTP-verzoek van Amazon API-gateway, enz. Echter, Amazon Lambda kan alleen worden gebruikt om achtergrondtaken uit te voeren.
Met de AWS Lambda-functie kunt u zich concentreren op uw kernproduct en bedrijfslogica in plaats van op het beheer van toegangscontrole tot het besturingssysteem (OS), OS-patching, right-sizing, provisioning, schaling, etc.
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, 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: 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-lambdacode wordt uitgevoerd, en niet anders.
Dit zal gebeuren in de volgende scenario's:
- Upload bestanden in een S3-bucket
- Wanneer de HTTP-get/post-eindpunt-URL wordt bereikt
- Voor het toevoegen/wijzigen en verwijderen van Dynamo DB-tabellen
- Tijdens het verzamelen van gegevensstromen
- Push notificatie
- Hosting van website
- E-mail verzenden
Opmerking: Houd er rekening mee 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 activeren
Hier zijn gebeurtenissen die worden geactiveerd wanneer u AWS Lambda gebruikt.
- Gegevens Dynamo DB-tabel invoegen, bijwerken en verwijderen
- 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.
- Helpt u bij het plannen van de gebeurtenis om de taak op 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-logs te verwerken
- Met API Gateway kunt u AWS Lambda activeren via GET/POST-methoden.
AWS Lambda Concepts
Functie:
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 functies in verschillende talen mogelijk die op dezelfde basisuitvoeringsomgeving draaien. Dit helpt u bij het configureren van uw functie in runtime. Het komt ook overeen met uw geselecteerde programmeertaal.
Bron van gebeurtenis:
Een gebeurtenisbron is een AWS-service, zoals Amazon SNS, of een maatwerkdienst. Deze triggerfunctie helpt u bij het uitvoeren van de logica ervan.
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 Logstream kunt u uw functiecode annoteren met aangepaste logboekinstructies waarmee u de uitvoeringsstroom en prestaties van uw AWS Lambda-functies kunt analyseren.
Hoe AWS Lambda te gebruiken
Nu zullen we leren hoe we AWS Lambda kunnen gebruiken met een AWS Lambda-voorbeeld:
Stap 1) Stap 1) Open de AWS Lambda-URL
Ga naar https://aws.amazon.com/lambda/ en aan de slag
Stap 2) Account aanmaken
Maak vervolgens een account aan of log in met uw bestaande account
Stap 3) Bewerk de code en klik op Uitvoeren,
Op de volgende Lambda-pagina,
- Bewerk de code
- Klik op Uitvoeren
Stap 4) Controleer de uitvoer
U zult de uitvoer zien
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 flexibiliteit om in te loggen op compute instances. Het laat je een aangepast besturingssysteem of taal runtime kiezen. | Biedt de flexibiliteit om de verscheidenheid aan instanties, aangepaste besturingssystemen, beveiligingspatches, netwerken, enz. te selecteren. |
Installatie proces | U moet uw omgeving selecteren waarin u de code wilt uitvoeren en de code 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 VS AWS elastische bonenstaak
Hier zijn enkele grote verschillen tussen AWS Lambda en Elastic Beanstalk.
parameters | AWS elastische bonenstaak | 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 en uitvoeren van uw back-endcode. U kunt het niet gebruiken om een toepassing 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-bronnen niet selecteren, zoals een type EC2-instantie. Lambda biedt bronnen op basis van uw werklast. |
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 u bij het 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 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 de Lambda-functie
Hier zijn enkele best practices van AWS Lambda-functies:
- Gebruik de juiste ‘time-out’.
- Maak gebruik van de functies van lokale opslag die 500 MB groot is in de map /temp
- Het 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 de latenties van verzoeken te bekijken en te optimaliseren.
Wanneer mag u AWS Lambda niet gebruiken?
Hieronder staan de situaties waarin Lambda zeker geen ideale optie is:
- Het is niet gepast om AWS Lambda-softwarepakketten of -applicaties te gebruiken die afhankelijk zijn van het aanroepen van onderliggende bestanden Windows RPC's
- Als het wordt gebruikt voor maatwerksoftwaretoepassingen met licentieovereenkomsten zoals MS-Office documentverwerking, Oracle databanken, enz.
- AWS Lambda mag niet worden gebruikt voor aangepaste hardwareprocessen zoals GPU-versnelling en hardware-affiniteit.
Voordelen van het gebruik van AWS Lambda
Hier zijn de voor- en voordelen van het gebruik van AWS lambda:
- AWS Lambda is een zeer flexibel hulpmiddel om te gebruiken
- Het helpt u toegang te verlenen tot bronnen, inclusief VPC's
- Schrijf rechtstreeks bij WYSIWYG-redacteur op console.
- Je 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 beheer of de inrichting 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.
- U hoeft dit alleen maar te doen voor de benodigde rekentijd, alleen wanneer uw code wordt uitgevoerd.
- U kunt uw codeprestaties in realtime volgen via CloudWatch.
- Hiermee kunt u uw code uitvoeren zonder voorzieningen of een andere server beheren
- Helpt u de code alleen uit te voeren 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.
- De Lambda-functie in AWS moet zo worden geconfigureerd met externe gebeurtenissen en timers; het kan worden gebruikt voor planning.
- Lambda-functies zijn stateless, zodat deze snel kunnen worden geschaald.
- 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 vertrouwt voor de infrastructuur volledig op AWS, 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 tussen 128 en 1536 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 het uitvoeren van de code bedraagt slechts 5 minuten.
Samenvatting
- Serverloos is een term die doorgaans verwijst naar serverloze applicaties.
- AWS Lambda is zo'n serverloze computerservice. Daarom hoeft u zich geen zorgen te maken over welke AWS-bronnen u moet lanceren, of hoe ze deze zullen beheren.
- Een functie is een programma of script dat draait in AWS serverless Lambda.
- Runtime maakt functies in verschillende talen mogelijk die op dezelfde basisuitvoeringsomgeving draaien.
- Een gebeurtenisbron is een AWS-service, zoals Amazon SNS, of een maatwerkdienst.
- Lambda-lagen zijn een belangrijk distributiemechanisme voor bibliotheken, aangepaste runtimes en andere belangrijke functieafhankelijkheden.
- Met Logstream kunt u uw functiecode annoteren met aangepaste logboekinstructies waarmee u de uitvoeringsstroom en prestaties van uw Lambda-functies kunt analyseren.
- 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 u zorgen te hoeven maken over de infrastructuur waarop deze applicaties draaien.
- AWS Lambda wordt gebruikt voor het uitvoeren en uitvoeren van uw back-endcode. U kunt het niet gebruiken om een toepassing te implementeren.
- AWS Lambda helpt u voor de ETL-proces.
- De beste praktijk van de Lambda-functie in AWS is het gebruik van de juiste ‘time-out’.
- Het is niet gepast om AWS Lambda-softwarepakketten of -applicaties te gebruiken die afhankelijk zijn van het aanroepen van onderliggende bestanden 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 in de Dynamo DB-tabel.