错误消息 - 没有名为psycopg2的模块
zip中使用的文件 - https://github.com/jkehler/awslambda-psycopg2
代码片段 -
#!/usr/bin/python
import psycopg2
import sys
import pprint
import datetime
def lambda_handler(event, context):
#Connect to RedShift
conn_string = "dbname='XXXX' port='5439' user='XXX' password='XXXX' host='XXXXXXXXXXXX'";
conn = psycopg2.connect(conn_string);
cursor = conn.cursor();
cursor.execute("begin transaction");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("delete from XXXX");
cursor.execute("insert into XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("end transaction");
conn.commit();
conn.close();
将Windows中的psycopg2提取并复制到我的AWS Lambda zip包中以及我的python文件和站点包。
我错过了什么吗?
修改
通过在Amazon Linux上压缩文件来重新创建包。还是一样的错误。
答案 0 :(得分:1)
psycopg2是一个已编译的模块。复制Windows版本不起作用,因为Lambda运行在Amazon Linux之上。根据{{3}},可以在lambda上运行本机可执行文件和库,但是您需要找到一种方法来为该平台构建psycopg2并静态链接其所有库或捆绑动态库。除非您熟悉C和Python工具链或其他人已经为您完成此工作,否则这可能具有挑战性。