Skip to content
This repository was archived by the owner on Apr 3, 2022. It is now read-only.

Files

Latest commit

 

History

History
38 lines (24 loc) · 1.86 KB

README.md

File metadata and controls

38 lines (24 loc) · 1.86 KB

24h Sprint Senacor AWS Playgrounds

Build Status

Dieses Repo enthält alle Dateien / Scripts / etc. die während des 24h Sprints von Senacor am 25.10.2018 entstanden sind. Da ich keine bius wenig Erfahrungen mit Terraform / AWS (Lamda, API Gateway, DynamoDb, Roles, etc) habe, wollte ich von null eine simple Lambda Landschaft erstellen die via terraform jederzeit neu hochgefahren bzw. zerstört werden kann.

Infrastructure

Voraussetzung für das erfolgreiche anlegen ist, dass travis für terraform secrets gesetzt hat. Die secrets können über die Commandline mit travis encrypt TF_VAR_access_key=<<SuperAccessKey>> --add env.gobal -p und travis encrypt TF_VAR_secret_key=<<SuperSecretKey>> --add env.gobal -p. Es empfiehlt sich natürlich, einen extra user für travis_ci in aws anzulegen und diesem nur die benötigten Rechte zu geben.

Travis & Github

Ich benutze TravisCI zum bauen und deployen meiner Infrastruktur. Vorteil hiervon ist, dass Travis CI eine nahtlose Verbindung zu Github hat und für OpenSource und private Projects umsonst nutzbar ist. Die Pipeline Definition für die Infrastruktur ist in der Datei .travis.yml. Travis CI ist in der Lage die terraform scripts auszuführen und anzulegen.

Terraform

Der Terraform code ist aufgeteilt in 4 Dateien:

  • aws.tf enthält aws als Provider und definiert die zu nutzenden access keys, etc.
  • lambda.tf enthält alle lambda Definitionen.
  • iam.tf enthält alle benötigten IAM Rollen Definitionen.
  • variables.tf enthält alle benötigten Variablen.

Die Lambda Funktionen werden automatisch verpackt und bei Änderungen hochgeladen.

Code

Overview

Lambda

API Gateway