Python 在AWS Lambda中连接AWS RDS(psql)
我用python编写了一个简单的lambda函数,从AWS RDS获取一些数据。PostgreSQL是数据库引擎Python 在AWS Lambda中连接AWS RDS(psql),python,python-3.x,amazon-web-services,aws-lambda,psql,Python,Python 3.x,Amazon Web Services,Aws Lambda,Psql,我用python编写了一个简单的lambda函数,从AWS RDS获取一些数据。PostgreSQL是数据库引擎 conn = psycopg2.connect(host=hostname, user=username, password=password, dbname=db_name, connect_timeout=50) 我确实喜欢这个。但它不起作用。总是返回这样的错误 答复: { “errorMessage”:“2018-06-06T11:28:53.775Z任务在3.00秒后超时
conn = psycopg2.connect(host=hostname, user=username, password=password, dbname=db_name, connect_timeout=50)
我确实喜欢这个。但它不起作用。总是返回这样的错误
答复:
{
“errorMessage”:“2018-06-06T11:28:53.775Z任务在3.00秒后超时”
}
如何解决此问题???很可能是因为无法建立网络连接而超时 如果您希望通过公共IP地址连接到数据库,则Lambda功能不应连接到VPC。相反,连接将通过互联网从Lambda进入VPC和Amazon RDS实例 如果您希望通过专用IP地址连接到数据库,则应将Lambda功能配置为使用与Amazon RDS实例相同的VPC 在这两种情况下,应使用RDS实例的DNS名称建立连接,但在VPC内外的解析方式不同
最后,与Amazon RDS实例关联的安全组需要允许传入连接。这也取决于请求是来自公共空间还是私人空间。您可以通过将安全组打开到
0.0.0.0/0
进行测试,如果有效,则尝试将其限制在最小可能范围内。很可能是因为无法建立网络连接而超时
如果您希望通过公共IP地址连接到数据库,则Lambda功能不应连接到VPC。相反,连接将通过互联网从Lambda进入VPC和Amazon RDS实例
如果您希望通过专用IP地址连接到数据库,则应将Lambda功能配置为使用与Amazon RDS实例相同的VPC
在这两种情况下,应使用RDS实例的DNS名称建立连接,但在VPC内外的解析方式不同
最后,与Amazon RDS实例关联的安全组需要允许传入连接。这也取决于请求是来自公共空间还是私人空间。您可以通过将安全组打开到
0.0.0.0/0
进行测试,如果有效,则尝试将其限制在最小可能范围内。与psql的连接是否打开?在从lambda进行测试之前,您可以测试连接吗?我可以使用相同的凭据通过我的pgAdmin连接到此数据库。你是说这个连接吗?到psql的连接打开了吗?在从lambda进行测试之前,您可以测试连接吗?我可以使用相同的凭据通过我的pgAdmin连接到此数据库。你是说这个吗?