Jeroen Nijssen AWS Lambda demo

Having fun with Lambda - 101

Jeroen Nijssen werkt als AWS engineer bij Sogeti. Hij heeft een demo gemaakt over AWS Lambda en de Buienradar weersverwachtingen. Ga jij de demo kraken? Lees snel verder of bekijk direct de Cloud vacatures.

Naar vacatures

Wat is AWS Lambda

Lambda is een serverless compute service en een van de tweehonderd Cloud services van AWS. Deze dienst biedt de mogelijkheid om code te draaien zonder dat je hoeft na te denken over de onderliggende compute. Lambda is vanuit de dienst highly available, zorgt zelf voor de automatische schaling, capaciteit provisioning en de noodzakelijke runtimes. Daarnaast wordt de code automatisch gemonitord en gelogd. Daarom niet nodig om te investeren in platformkennis en kan het team zich focussen op andere werkzaamheden.

Bij Sogeti wordt Lambda toegepast bij vele services en applicaties. Zo hebben we een storage cluster geautomatiseerd laten schalen voor een klant. Een ander voorbeeld is PostNL, hier hebben we Lambda gebruikt bij de software voor de beveiliging van hun distributiecentra. 

Lambda 101 – Buienradar weersverwachting

In de demo wordt er een Lambda gemaakt die met regelmaat de weersverwachting van morgen stuurt. Deze demo is bedoeld om beginners kennis te laten maken met Lambda. 

Jeroen Nijssen blog afbeelding 1

 

Services

We beginnen aan de hand van de architectuur zoals hierboven op de afbeelding. In het voorbeeld is te zien dat er drie AWS Services in worden gebruikt. Namelijk Lambda, SNS en Cloudwatch.

Ontwikkelomgeving

Om nu deze code te gaan deployen, wordt eerst de ontwikkelomgeving opgezet. Hiervoor hebben we een aantal tools nodig, namelijk:

  1. Terraform - installatie instructies, executabel (selecteer hier de juist voor jouw OS.)
  2. Git - installatie instructies

Naast de tools hebben we ook nog AWS-toegang nodig, dit zetten we op door gebruik te maken van de environment variabele van jouw besturingssysteem.

Windows - CMD
SET AWS_ACCESS_KEY_ID=‘Jouw Access Key ID’
SET AWS_SECRET_ACCESS_KEY=‘Jouw Secret Access Key’

MacOS  Unix
export AWS_ACCESS_KEY_ID=‘Jouw Access Key ID’
export AWS_SECRET_ACCESS_KEY=‘Jouw Secret Access Key’

Jeroen Nijssen blog afbeelding 2

 

Uitvoeren

Nu we de ontwikkelomgeving en ook de benodigde AWS-toegang hebben, kunnen we de volgende stap maken. In dit geval de code vanuit GitHub downloaden. Dit kunnen we op verschillende manieren doen, het makkelijkste is door het uitvoeren van het volgende commando.

git clone https://github.com/sogeti/HavingFunWithLambda_101.git

Dit commando zal de code die op GitHub staat downloaden en ons voorzien van de benodigde configuratie.

Jeroen Nijssen blog afbeelding 3

 

Nu hebben we alles om daadwerkelijk de verschillende “resources” binnen ons AWS-account aan te maken. Dit kunnen we doen door het volgende commando uit te voeren.

Houd er rekening mee dat je de waarde van jouwmailaccount@domein.tld aanpast naar jouw eigen mail.

Unix-style shell
terraform apply -var 'mail_subscribers=["jouwmailaccount@domein.tld"]'

Windows Command Prompt (do not use PowerShell on Windows)
terraform apply -var "mail_subscribers=[\"jouwmailaccount@domein.tld\"]"

Nu hebben we de omgeving neergezet zoals hij in het design staat beschreven en krijgen we iedere dag de weersverwachting van morgen binnen.

Terraform Details

Alle terraform details zijn terug te vinden in de https://github.com/sogeti/HavingFunWithLambda_101/blob/main/tf-documentation.md

Cost Estimation

Kosten zijn altijd een belangrijk aspect binnen een cloud omgeving, vandaar dat er een kostenraming gemaakt is, zie https://github.com/sogeti/HavingFunWithLambda_101/blob/main/tf-cost.md

Binnen de kostenraming houden we rekening met een geschat (normaal) verbruik. Aangezien het gebruik/verbruik van iedereen kan verschillen.

AWS iets voor jou?

Bij Sogeti zoeken we enthousiastelingen die graag aan de slag gaan met AWS of andere Cloud oplossingen. Ben jij op zoek naar een nieuwe Cloud uitdaging? Bekijk dan de vacatures.

Naar vacatures

 

Kan ik je verder helpen?