Webanwendung - AWS Serverless-Mehrschichtenarchitekturen mit Amazon API Gateway und AWS Lambda

Webanwendung

AWS Cloud architecture diagram showing client interaction with various AWS-Services.

Architekturmuster einer Webanwendung

Tabelle 3: Komponenten einer Webanwendung

Schicht Komponenten
Präsentation

Die Frontend-Anwendung besteht ausschließlich aus statischen Inhalten (HTML, CSS, JavaScript und Bilder), die von React-Dienstprogrammen wie create-react-app generiert werden. Diese Objekte werden alle von Amazon CloudFront gehostet. Wenn die Webanwendung verwendet wird, lädt sie alle Ressourcen in den Browser herunter und wird von dort aus ausgeführt. Die Webanwendung stellt eine Verbindung zum Backend her, das die APIs aufruft.

Logik

Die Logikschicht wird mit Lambda-Funktionen erstellt, die hinter API-Gateway-REST-APIs ausgeführt werden.

Diese Architektur zeigt mehrere exponierte Services. Es gibt mehrere verschiedene Lambda-Funktionen, die jeweils für einen anderen Aspekt der Anwendung zuständig sind. Die Lambda-Funktionen befinden sich hinter API Gateway und sind über API-URL-Pfade zugänglich.

Die Benutzerauthentifizierung erfolgt mithilfe von Amazon Cognito-Benutzerpools oder Verbundbenutzeranbietern. API Gateway nutzt die sofort einsatzbereite Integration mit Amazon Cognito. Erst nachdem ein Benutzer authentifiziert wurde, erhält der Client ein JSON-Web-Token (JWT), das er dann bei den API-Aufrufen verwenden sollte.

Jeder Lambda-Funktion wird eine eigene IAM-Rolle zugewiesen, um den Zugriff auf die entsprechende Datenquelle zu ermöglichen.

Daten

In diesem speziellen Beispiel wird DynamoDB als Datenspeicher verwendet, aber je nach Anwendungsfall und Anwendungsszenario können auch andere zweckgebundene Amazon-Datenbank- oder -Speicherdienste verwendet werden.