繁体   English   中英

无法在AWS Lambda(Python)中导入模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM