Meine Website

Diagramm Anmeldebot

Beschreibung

Mein Ziel ist, ins Cloud-Computing reinzuwachsen. Über LinkedIn kann ich viel posten, aber meine Roadmap, meinen Projektfortschritt und meine Entwicklung kann ich damit nicht meinen Wünschen entsprechend darstellen. Eine Website ist die ideale Aufgabe, um meine Fähigkeiten zu verbessern und gleichzeitig meine Brand nach außen zu vermarkten. Die HTML-Files, die ich gebaut habe, stelle ich auf einem S3-Bucket über das Static Website Hosting öffentlich zur Verfügung. Da ich Ansprüche habe, habe ich mir eine eigene Domain erzeugt (schajanmainka.com) und route diese auf meinen Bucket. Mir ist es außerdem wichtig, dass Besucher meiner Website Kontakt zu mir herstellen können. Dafür habe ich eine Lambda-Funktion gebaut, auf der Python-Code deployt wurde. Dieser Python-Code deklariert einen SES-CLIENT („Simple Email Service“) und übergibt diesem die Informationen aus dem Kontaktformular. Der SES-Client schickt eine E-Mail an meine persönliche Adresse, damit ich Kontakt zum Besucher herstellen kann.   Damit Lambda-Funktion und Website miteinander kommunizieren können, habe ich sie mit einem API-Gateway verbunden. So kann ich mittels JavaScript einen JSON-POST mit Userdaten an die API senden, der dann von der Lambda-Funktion verarbeitet wird. Zusätzlich musste ich IAM-Rollen erzeugen, die den jeweiligen Service außerhalb des Buckets erlauben.

Hindernisse

- Die API lehnt meinen POST Request ab. nachdem ich für die API CORS (Cross-Origin-Ressource-Sharing) aktiviert habe.

-> Lösung: Aktivieren von CORS (Cross-Origin_Ressource-Sharing) in der API.

- Mein POST Request kommt immer noch nicht an. Ich habe herausgefunden: Der Browser schickt erst einen OPTIONS (Preflight Request) an die API, um zu prüfen, ob ein POST Request erlaubt ist.

-> Lösung: OPTIONS erlauben durch definieren einer Methode in der API.

Learnings

- Erstellen eines S3 Buckets mit Static Website Hosting.

- Erstellen einer Lambda-Funktion, IAM Rollen, API und Domain (Route 53).

- Routing der Domain auf den Bucket.

- Wird die Lambdafunktion oder API geändert, muss ich sie neu deployen bzw. bereitstellen.

- HTML Kenntnisse aufgefrischt.

- Tailwind CSS.

Erweiterungen

+ Ich habe die Website um CloudFront erweitert. Dadurch wird die Website schneller und läuft verschlüsselt über mein SSL Zertifikat.

- Ich möchte eine Datenbank anbinden, um Cookies meiner Besucher zu speichern. Davon verspreche ich mir weitere Metriken und Analysen wie z.B.: Wie viele Besuche hat meine Website am Tag? Wie lange surft ein Besucher durchschnittlich auf meiner Website? Welche Bereiche meiner Website sind die interessantesten und welche sind eher uninteressant?