0

J'ai un script python 3.6 qui doit être exécuté sur AWS Lambda. Le script doit établir une connexion à RedShift - en utilisant psycopg2.psycopg2 aws Erreur de temporisation lambda

Le package de déploiement a été créé avec la version psycopg2 compatible appropriée. Lors de l'établissement d'une connexion - conn = psycopg2.connect (...) -, le script expire à des seuils de 5 secondes à 5 minutes (lors de l'exécution locale du script, cela prend moins de 5 secondes).

Si je supprime l'instruction de connexion (c'est-à-dire, conn = psycopg2.connect (...)), le script n'expire pas - l'invite de succès est générée instantanément.

Si quelqu'un rencontrait un problème similaire, votre contribution serait grandement appréciée.

Les roues continuent de tourner

+1

Bienvenue dans Stack Overflow! Les questions qui cherchent une aide au débogage («pourquoi ce code ne fonctionne-t-il pas?») Doivent inclure le comportement souhaité, un problème ou une erreur spécifique et le code le plus court nécessaire pour le reproduire dans la question elle-même. Les questions sans énoncé de problème clair ne sont pas utiles aux autres lecteurs. Voir: Comment créer un [mcve]. Utilisez le lien "modifier" pour améliorer votre * question * - ne pas ajouter plus d'informations via des commentaires. Merci! – GhostCat

+0

Dupliquer Je pense: https://stackoverflow.com/questions/31809890/can-aws-lambda-connect-to-rds-mysql-database-and-update-the-database – Xire

Répondre

0

Si votre script se bloque sur le psycopg2.connect (...) appel, que le groupe de sécurité associé à votre fonction lambda, n'est pas autorisé à accéder à l'instance de base de données Postgres.

Vérifiez le groupe de sécurité associé à la base de données il doit avoir une entrée qui accorde l'accès au groupe de sécurité associé à votre lambda.

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