0

RDS sans accès à Internet, le même VPC que Lambda. Je peux me connecter à RDS à partir de EC2 dans le même VPC. J'ai essayé d'établir une connexion socket de Lambda à RDS avec succès:Impossible de se connecter à partir de AWS Lambda à RDS Postgres mais peut établir une connexion par socket

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

Dans les journaux, je vois None si la connexion a réussi, mais je reçois délai d'attente sur la connexion par psycopg2:

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

Je mets délai maximum sur Lambda - 60 secondes. Groupe de sécurité autoriser l'accès au port 5432. Comme je comprends si je peux établir une connexion socket à la base de données - il est moyen que toutes les préférences sur le réseau est ok? Alors, où peut être un problème?

+0

Comment 'None' signifie-t-il que la connexion a réussi? –

+0

@ Michael-sqlbot car une connexion incorrecte se fera via 'ConnectionRefusedError' –

Répondre

0

Ma solution: J'ai migré vers le DynamoDB - maintenant je n'ai pas besoin de psycopg2 compilé dans l'archive de déploiement avec des bibliothèques liées statiquement.