【问题标题】:Can not connect from AWS Lambda to RDS Postgres but can establish socket connection无法从 AWS Lambda 连接到 RDS Postgres,但可以建立套接字连接
【发布时间】:2017-11-25 22:03:48
【问题描述】:

RDS 无法访问互联网,与 Lambda 相同的 VPC。我可以在同一个 VPC 中从 EC2 连接到 RDS。我尝试建立从 Lambda 到 RDS 的套接字连接成功

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

在日志中我看到 None 所以连接成功,但我通过 psycopg2 连接超时:

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

我在 Lambda 上设置了最大超时 - 60 秒。安全组允许访问端口 5432。据我所知,如果我可以建立与数据库的套接字连接 - 这意味着所有关于网络的偏好都可以吗?那么哪里有问题呢?

【问题讨论】:

  • None如何表示连接成功?
  • @Michael-sqlbot 因为连接不正确将通过ConnectionRefusedError

标签: python postgresql amazon-web-services aws-lambda amazon-rds


【解决方案1】:

我的解决方案:我迁移到了 DynamoDB - 现在我不需要在部署存档中使用静态链接库编译 psycopg2

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 2016-09-30
    • 2018-05-13
    • 2019-09-01
    • 2017-12-13
    • 1970-01-01
    • 2019-05-27
    • 2021-05-10
    • 1970-01-01
    相关资源
    最近更新 更多