Die Aufgabe ist es eine REST API zu erstellen mit AWS API Gateway, welche Daten lesen und später auch schreiben kann von einer Dynamo DB ohne eine Lambda Funktion zu verwenden.
Wir werden das API Gateway so konfigurieren, dass es die Request Daten validiert und so verändert, dass der DynamoDB Service die Daten verarbeitet.
Dazu erstellen wir in AWS ein nicht private REST API:
Berechtigungen vergeben, dass das API Gateway auf die DynamoDB Tabelle zugreifen kann in AWS IAM. Dafür erstellen wir eine Richtlinie in IAM. Die Berechtigung sieht wie folgt aus:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dynamodb:Scan" ], "Effect": "Allow", "Resource": "ENTER_ARN_OF_YOUR_DYNAMO_DB_HERE" } ] }
Die Richtlinie kann mit dem Tool genriert werden: https://awspolicygen.s3.amazonaws.com/policygen.html
Dann muss eine Rolle mit der Richtlinie für den Service API Gateway erstellt werden in IAM. Hinweis: Die Richtlinie kann erst nach dem erstellen der Rolle hinzugefügt werden.
Dann Erstellen wir in AWS API Gateway eine Resource mit der Richtlinie:
Jetzt wandeln wir den einfacher GET Request /data/all mit leerem Payload um zu einem DynamoDB POST Request, der alle Daten zurückliefert, beschrieben in: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
Die Integrationsanforderung der Resource muss folger Maßen konfiguriert sein:
Der Request kann über den Testen Button in AWS ausprobiert werden: