0

RDS ohne Zugang zum Internet, die gleiche VPC wie Lambda. Ich kann von EC2 in derselben VPC mit RDS verbinden. Ich habe versucht, erfolgreich eine Socket-Verbindung von Lambda zu RDS herzustellen:Verbindung von AWS Lambda zu RDS Postgres nicht möglich, aber kann Socket-Verbindung herstellen

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
print(s.connect(('xxx.cmebgbnbfkax.eu-west-1.rds.amazonaws.com', 5432))) 

In logs Ich sehe None so Verbindung erfolgreich war, aber ich bekomme Timeout auf Verbindung über psycopg2:

psycopg2.connect(
    host='xxx.cmebgbnbfkax.eu-west-1.rds.amazonaws.com', 
    dbname=<my db name>, 
    user=<my usernamr>, 
    password=<my password>) 

I gesetzt maximale Zeitüberschreitung bei Lambda - 60 Sekunden. Sicherheitsgruppe erlauben den Zugriff auf den Port 5432. Wie ich weiß, wenn ich Socket-Verbindung mit der Datenbank herstellen kann - es bedeutet, dass alle Präferenzen über die Vernetzung in Ordnung ist? Wo kann also ein Problem sein?

+0

Wie bedeutet 'None', dass die Verbindung erfolgreich war? –

+0

@ Michael-sqlbot, weil bei falscher Verbindung durch 'ConnectionRefusedError' –

Antwort

0

Meine Lösung: Ich habe die DynamoDB migriert - jetzt brauche ich keine kompilierte psycopg2 im Deployment-Archiv mit statisch verknüpften Bibliotheken.

Verwandte Themen