无法在AWS Lambda(Python)

时间:2017-02-27 19:36:04

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

我有一个名为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函数以运行foo.handler。但是,每次测试时,我都会得到"errorMessage": "Unable to import module 'foo'"

任何想法可能会在这里发生什么?

stat --format '%a' foo.py显示664

1 个答案:

答案 0 :(得分:2)

所以,我在我的lambda函数中导入psycopg2,这需要libpq.so,它与Postgres一起安装。 Postgres没有安装在lambda环境中,因此导入psycopg2失败,这意味着,通过扩展,亚马逊导入的lambda函数也失败了。但是,这不是一个非常有用的错误消息。

值得庆幸的是,有人构建了一个与AWS lambda一起使用的psycopg2版本:https://github.com/jkehler/awslambda-psycopg2