AWS Lambda is een service waarmee je je code kunt uploaden naar AWS, zodat deze met behulp van AWS-infrastructuur uitgevoerd wordt. Amazon Lambda zorgt voor het inrichten en beheren van de servers die je gebruikt om de code uit te voeren. Je kunt AWS Lambda op twee manieren toepassen. Je kunt het gebruiken als een event-driven compute dienst die je code uitvoert als reactie op gebeurtenissen, zoals wijzigingen in gegevens in een Amazon S3 bucket of een Amazon DynamoDB-tabel. Daarnaast kun je het gebruiken als een compute service die die code uitvoert als reactie op HTTP-verzoeken via Amazon API Gateway of API-aanroepen gemaakt met behulp van AWS SDKs.

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!

Lever gewoon je code aan

Je AWS Lambda code wordt uitgevoerd op infrastructuur met hoge beschikbaarheid, met inbegrip van de server en het onderhoud van het operating systeem, het inrichten van capaciteit en het automatisch schalen, van code controle en logboekregistratie. Je hoeft alleen maar je code aan te leveren in een van de talen die AWS Lambda ondersteunt (momenteel Node.js, Java, en Python). Met AWS Lambda wordt je code automatisch uitgevoerd, alleen wanneer het nodig is. Je betaalt ook alleen voor die momenten. Dat kan variëren van een paar aanvragen per dag tot duizenden per seconde. Met deze mogelijkheden kun je heel gemakkelijk triggers maken voor gegevensverwerking, ten behoeve van AWS-diensten zoals Amazon S3 en Amazon DynamoDB. Je kunt echter ook streaming data verwerken die zijn opgeslagen in Amazon Kinesis, of je eigen back-end met behulp van AWS Lambda snel, veilig en schaalbaar maken.

Amazon CloudWatch

Bij het gebruik van AWS Lambda, ben je alleen verantwoordelijk voor je code. AWS Lambda beheert de servers die een evenwicht van geheugen, CPU, netwerk en andere bronnen bieden. Daarvoor betaal je een kleine prijs: je kunt niet inloggen op compute instances, en evenmin het besturingssysteem of de taal aanpassen. Maar ook al controleert en logt AWS je Lambda-functies, je kunt de AWS Lambda console, de console CloudWatch, en andere bronnen van Amazon Web Services (AWS) instellen om voor elk van je Lambda-functies herinneringen in te stellen of om request rates en error states te zien. Je kunt ook logging invoegen in je code, zodat je kunt controleren of de code werkt zoals verwacht.

Kernonderdelen

Een Lambda-functie en een gebeurtenisbron zijn de belangrijkste onderdelen wanneer je met AWS Lambda werkt. Gebeurtenisbronnen publiceren gebeurtenissen (events) en een Lambda-functie is de aangepaste programmacode die je schrijft om het event te verwerken. Deze wordt automatisch aangeroepen in reactie op events. (Zoals eerder vermeld, kun je je Lambda-functie ook rechtstreeks via HTTPS of met behulp van AWS SDK's aanroepen.)

Een Lambda-functie bestaat uit code die je opgeeft, de bijbehorende afhankelijkheden en configuratie.

De configuratie-informatie die je verstrekt bevat de reken-resources die je wil toewijzen (bijvoorbeeld voor geheugen of CPU), time-out voor de uitvoering ervan en een IAM-rol waarmee je Lambda-functie in die rol uitgevoerd kan worden. De IAM-rol is een mechanisme waarmee je AWS Lambda de noodzakelijke machtigingen verleent om je code met succes uit te voeren. Als onderdeel van de configuratie moet je ook een handler (dat wil zeggen, een methode/functie in je code) opgeven waar AWS Lambda kan beginnen je code uit te voeren. Die kan ook aan een event gekoppeld worden.

Automatische Lambda-functie-aanroep met gebeurtenisbronnen

Gebeurtenisbronnen publiceren gebeurtenissen waardoor de Lambda-functie wordt aangeroepen. Bij het aanroepen voert AWS Lambda je code uit door de gebeurtenis aan de handler in je programmacode door te geven. Met event source mapping kun je een gebeurtenisbron (event source) met je Lambda-functie-code associëren. Hoe je deze associatie implementeert, is afhankelijk van de gebeurtenisbron. Er zijn drie categorieën van gebeurtenisbronnen die we hieronder behandelen: AWS-diensten (bijvoorbeeld Amazon S3), geplande events en Amazon-diensten (bijvoorbeeld Amazon Echo).

AWS diensten als gebeurtenisbronnen

Momenteel ondersteunt AWS Lambda gebeurtenissen uit de volgende services:

  • Amazon S3 (data-opslag)
  • Amazon DynamoDB (updates in een tabel)
  • Amazon Kinesis (terabytes aan gegevens per uur uit streams)
  • Amazon Simple Notification Service (een snelle, flexibele, push notification service , volledig managed)
  • Amazon Simple E-mail Service (je kunt het zo configureren dat uw Lambda-functie wordt aangeroepen wanneer er berichten binnenkomen.)
  • Amazon Cognito (Daarmee kunt acties aangeroepen bij wijzigingen in gegevens van de gebruiker, zoals voorkeuren voor een app of een spel status - en vervolgens binnen uw Lambda functie de gegevens valideren, controleren, of wijzigen.)
  • Amazon CloudWatch Logs (Abonnementen op een CloudWatch-log bieden toegang tot een real-time feed van gebeurtenissen in het systeemlogboek van logboeken van de CloudWatch en leveren ze af bij uw AWS Lambda-functie voor aangepaste verwerking, analyse, of het laden in andere systemen.)
  • AWS CloudFormation (als onderdeel van het deployen van AWS CloudFormation-stacks kun je een Lambda-functie specificeren als een aangepaste hulpbron voor elke aangepaste opdracht als onderdeel van het aanmaken van je stack.)

Daarnaast kun je ook Lambda-functies gebruiken met andere AWS-services die gegevens naar een van de andere hierboven vermelde gebeurtenisbronnen publiceren. Zo kun je Lambda-functies door AWS CloudTrail-updates of Amazon CloudWatch-waarschuwingen laten triggeren.

Elk van deze gebeurtenisbronnen hebben een vooraf gedefinieerde gebeurtenisgegevensstructuur. Een Amazon S3 event bijvoorbeeld, heeft een eindige structuur die informatie levert zoals een bucket name en een object key. Met je Lambda functiecode zorg je ervoor dat dhet vent gelzen en verwerkt wordt.

Geplande events

Je kunt AWS Lambda ook instellen om je code aan te roepen op regelmatige, geplande basis met behulp van de AWS Lambda-console. Je kunt een vaste tijd aangeven (aantal uren, dagen of weken) of je kunt een cron-expressie opgeven.

Andere diensten, Amazon als gebeurtenisbronnen

Op dit moment kunt je Lambda-functies gebruiken om diensten te bouwen die nieuwe vaardigheden geven aan Alexa, de spraak-assistent van Amazon Echo. De Alexa Skills Kit bevat de API's, hulpprogramma's en documentatie om deze nieuwe vaardigheden te maken van.

Lambda-functie-aanroep over HTTPS

Naast het aanroepen van Lambda-functies met behulp van gebeurtenisbronnen, kun je ook je Lambda-functies via HTTPS aanroepen. Dat doe je door een aangepaste REST API en een eindpunt via Amazon API Gateway te definiëren. Je kunt afzonderlijke API methoden, zoals GET en PUT en specifieke Lambda-functies toewijzen. Wanneer je een HTTPS-request naar het eindpunt van de API stuurt, roept de Amazon API Gateway service de corresponderende Lambda-functies aan.

Probeer het zelf en maak gratis een account aan op AWS