Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在AWS Lambda中连接AWS RDS(psql)_Python_Python 3.x_Amazon Web Services_Aws Lambda_Psql - Fatal编程技术网

Python 在AWS Lambda中连接AWS RDS(psql)

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秒后超时

我用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秒后超时” }


如何解决此问题???

很可能是因为无法建立网络连接而超时

如果您希望通过公共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连接到此数据库。你是说这个吗?