2017-08-31 11 views
0

Ich habe ein Python 3.6-Skript, das auf AWS Lambda ausgeführt werden muss. Das Skript muss eine Verbindung zu RedShift herstellen, die über psycopg2 erfolgt.psycopg2 aws Lambda Timeout Fehler

Das Bereitstellungspaket wurde mit der entsprechenden kompatiblen psycopg2-Version erstellt.

Beim Herstellen einer Verbindung - dh conn = psycopg2.connect (...) - überschreitet das Skript die Schwellenwerte von Bereichen von 5 Sekunden bis zu 5 Minuten (wenn das Skript lokal ausgeführt wird) es dauert weniger als 5 Sekunden).

Wenn ich die Verbindungsanweisung entfernen (d. H. Conn = psycopg2.connect (...)), wird das Skript nicht zeitüberwacht - die Erfolgseingabe wird sofort generiert.

Wenn jemand ein ähnliches Problem erfahren hat, würde Ihre Eingabe sehr geschätzt werden.

Die Räder halten

+1

Willkommen bei Stack Overflow! Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines [mcve]. Verwenden Sie den Link "Bearbeiten", um Ihre * Frage * zu verbessern - fügen Sie keine weiteren Informationen über Kommentare hinzu. Vielen Dank! – GhostCat

+0

Duplizieren ich denke: https://stackoverflow.com/questions/31809890/can-aws-lambda-connect-to-rs-mysql-database-and-update-the-database – Xire

Antwort

0

Spinnen Wenn Ihr Skript auf dem psycopg2.connect hängt (...) nennen, als die Sicherheitsgruppe mit dem Lambda-Funktion zugeordnet ist, keinen Zugriff auf die Postgres-Datenbankinstanz erlaubt ist.

Überprüfen Sie die der Datenbank zugeordnete Sicherheitsgruppe, die einen Ingress haben sollte, der Zugriff auf die Sicherheitsgruppe gewährt, die Ihrem Lambda zugeordnet ist.

 "DatabaseSecurityGroupIngress": [ 
     { 
     "IpProtocol": "tcp", 
     "FromPort": "5432", 
     "ToPort": "5432", 
     "SourceSecurityGroupId": { 
      "Ref": "LambdaSecurityGroup" 
     } 
     ]