Как подключить Lambda в VPC к RDS?

Для этого есть несколько вопросов / ответов, но ни одно из решений, похоже, не работает.

Моя текущая настройка:

  • Лямбда (с питоном 2.7 времени выполнения) в VPC
  • Экземпляр RDS (postgres) в том же VPC
  • Лямбда-роль имеет политику чтения / записи в определенные сегменты S3 и AWSLambdaVPCAccessExecutionRole
  • Таблица маршрутизации лямбда-подсети имеет доступ к локальным IP-адресам и к конечной точке VPC для S3
  • Таблица маршрутизации подсети RDS имеет доступ к локальным IP-адресам
  • Лямбда-группа безопасности (SG) имеет входящие и исходящие правила для конечной точки Postgres & VPC
  • RDS SG имеет входящие и исходящие правила для идентификатора Lambda SG

Я использую psycopg2 для подключения, который находится в моем requirements.txt файл. Я попытался простой запрос SELECT, как показано ниже:

conn = psycopg2.connect(dbname=os.environ['DB_NAME'], user=os.environ['USERNAME'], password=os.environ['PASSWORD'])
cursor = conn.cursor()
query = "SELECT * from {};".format(os.environ['TABLE'])
cursor.execute(query)
records = cursor.fetchall()

Что дает мне ошибку:

could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
: OperationalError
Traceback (most recent call last):
File "/var/task/mylambda.py", line 31, in call
conn = psycopg2.connect(dbname=os.environ['DB_NAME'], 
user=os.environ['USERNAME'], password=os.environ['PASSWORD'])
File "/tmp/sls-py-req/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

Что мне не хватает? Как я могу успешно подключиться к RDS с моей лямбды? Спасибо!

0 ответов

Другие вопросы по тегам