我有一个 python 3.6 脚本,需要在 AWS Lambda 上执行。该脚本需要建立与 RedShift 的连接 - 通过 psycopg2 完成。
部署包已使用适当的兼容 psycopg2 版本创建。
建立连接时 - 即 conn = psycopg2.connect(...) - 脚本超时的阈值范围从小至 5 秒到大至 5 分钟(在本地执行脚本时,耗时不到 5 秒)。
如果我删除连接语句(即 conn = psycopg2.connect(...)),脚本不会超时 - 会立即生成成功提示。
如果有人遇到类似的问题,我们将非常感谢您的意见。
轮子一直在旋转
最佳答案
如果您的脚本在 psycopg2.connect(...) 调用上挂起,则与您的 lambda 函数关联的安全组将不允许访问 Postgres 数据库实例。
检查与数据库关联的安全组,它应该有一个入口,该入口授予与您的 lambda 关联的安全组的访问权限。
"DatabaseSecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": "5432",
"ToPort": "5432",
"SourceSecurityGroupId": {
"Ref": "LambdaSecurityGroup"
}
]
关于python - psycopg2 aws lambda超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981140/