[英]Unable to import module in AWS Lambda (Python)
我有一个名为foo.py
的python脚本。 它具有如下定义的lambda处理函数:
def handler(event, context):
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
download_path = '/tmp/{}.gz'.format(key)
csv_path = '/tmp/{}.csv'.format(key)
... proceed to proprietary stuff
这是一个zip文件,如下所示:
-foo.zip
-foo.py
-dependencies
我已将此zip文件上传到AWS Lambda并配置了一个AWS Lambda Function以运行foo.handler
。 但是,每次测试时,都会得到"errorMessage": "Unable to import module 'foo'"
。
任何想法可能在这里发生什么?
stat --format '%a' foo.py
显示664
因此,我在我的lambda函数中导入了psycopg2
,该函数需要libpq.so
,该函数随Postgres一起安装。 Postgres没有安装在lambda环境中,因此导入psycopg2
失败,这意味着,从扩展角度看,Amazon导入我的lambda函数也失败了。 但是,这不是一个非常有用的错误消息。
值得庆幸的是,有人构建了一个适用于AWS lambda的psycopg2
版本: https : //github.com/jkehler/awslambda-psycopg2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.