Ist es möglich, eine Amazon RDS-Instanz direkt über API Gateway abzufragen?

8

Ich bin neu in API Gateway, und soweit ich es versucht habe, ist ein wirklich mächtiges Werkzeug. Für das Projekt, an dem ich gerade arbeite, verwenden wir eine PostgreSQL-Instanz in RDS. Ich habe gesehen, dass es möglich ist, direkt von API-Gateway auf DynamoDB-Tabellen zuzugreifen, also habe ich mich gefragt, ob es eine Möglichkeit gibt, dies für relationale Datenbanken zu tun. Also habe ich eine Ressource mit einer GET-Methode erstellt und konfiguriert, um eine Verbindung zu meiner Datenbank herzustellen, aber ich war mir nicht sicher, ob ich die richtigen Parameter verwendet habe:

Informationen zum Ziel-Back-End

Ich war mir also nicht sicher über die Argumente in den einzelnen Einstellungen. In AWS Subdomain habe ich die öffentliche URL geschrieben, als würde ich mich von meinem pgAdmin-Client aus verbinden (kein Port, weil die vollständige Struktur nicht akzeptiert wurde, also weiß ich, dass ich etwas Schlimmes mache). Vorher habe ich versucht, den ARN meiner RDS-Ressource zu verwenden, aber ein solcher Fehler ist aufgetreten:

%Vor%

Für die Ausführungsrolle habe ich eine mit den Richtlinien erstellt, um auf meine Postgres-Ressource zuzugreifen.

Lesen der RDS-Dokumentation Ich habe herausgefunden, dass es möglich ist, die Query-API von RDS mit dem HTTP-Verb GET oder POST und einem Abfrageparameter namens Action zu verwenden. Daher habe ich versucht, meine Abfrageanweisung folgendermaßen zu platzieren:

HTTP-Abfrage-basierte Anfragen

Aber wenn ich die Methode teste, ist dies der Antworttext:

%Vor%

Und das sind die Logs:

%Vor%

Ich weiß, dass ich viele Dinge falsch mache, also weiß jeder, ob das tatsächlich möglich ist und wie es gemacht wird, weil ich noch kein detailliertes Tutorial gefunden habe.

    
Camilo Ortegón 19.03.2016, 15:35
quelle

1 Antwort

15

Nein, das ist nicht möglich. Der API-Gateway-Dienstproxy vermittelt nur Aufrufe an die AWS-API. Mit der RDS-API können Sie beispielsweise nur eine Datenbank erstellen, eine Datenbank löschen, Snapshots erstellen usw. Sie können keine Verbindungen herstellen und Abfragen für die Datenbank ausführen.

Sie sollten sich das API-Gateway bei einer Lambda-Funktion ansehen, die eine Verbindung zu Ihrer RDS-Datenbank herstellen und Abfragen ausführen kann.

    
Mark B 19.03.2016, 16:25
quelle