AWS Lambda Python / Boto3 / psycopg2 Redshift临时凭证

时间:2018-04-10 19:26:07

标签: python amazon-web-services aws-lambda boto3 psycopg2

我对AWS很陌生,所以请让我知道我想做的事情是不是一个好主意,但它的基本要点是我有一个我希望能够查询的Redshift集群来自Lambda(Python)使用psycopg2和boto3的组合。我已经为Lambda函数分配了一个角色,允许它从Redshift获取临时凭证(get_cluster_credentials)。然后我使用psycopg2传递这些临时凭证来创建连接。当我在本地从我的Python控制台以交互方式运行时,这可以正常工作,但我收到错误:

  

OperationalError:FATAL:用户“IAMA:temp_user_cred:vbpread”的密码验证失败

如果我使用Lambda直接在我的python控制台的连接语句中生成的临时凭证,它们实际上可以工作(直到过期)。我想我错过了一些明显的东西。我的代码是:

{{1}}

我正在使用Python 3.6。

谢谢! 格里

1 个答案:

答案 0 :(得分:0)

我使用的是Windows编译版的psycopg2,需要Linux。把它换成了这里的那个:https://github.com/jkehler/awslambda-psycopg2