Lambda特定包在AWS lambda上不起作用

时间:2018-06-14 09:50:39

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

我下载了this lambda package from github,因此我可以在AWS上运行我的lambda函数。我没有使用所有的文件夹,我只拿了我需要的文件夹。

因此,我的Pillow文件夹包含:numpyOpenCVpsycopg2Unable to import module 'lambda_function': No module named 'PIL' from __future__ import print_function import boto3 import os import sys import uuid from PIL import Image import PIL.Image s3_client = boto3.client('s3') def resize_image(image_path, resized_path): with Image.open(image_path) as image: image.thumbnail(tuple(x / 2 for x in image.size)) image.save(resized_path) def handler(event, context): for record in event['Records']: bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] download_path = '/tmp/{}{}'.format(uuid.uuid4(), key) upload_path = '/tmp/resized-{}'.format(key) s3_client.download_file(bucket, key, download_path) resize_image(download_path, upload_path) s3_client.upload_file(upload_path, '{}resized'.format(bucket), key)

我将.zip文件上传到我的lambda函数。但是在测试时会返回此错误:

RecyclerView

不确定为什么我收到此错误,因为我的代码中导入了PIL(代码由AWS提供):

lambda_function.py

itemView

知道我为什么会收到此错误?

编辑:重复的解决方案建议创建一个EC2实例,这不是我正在做的。

1 个答案:

答案 0 :(得分:0)

由于AWS lambda在amazonlinux操作系统上运行,因此您需要上载该OS上安装的软件包。 该存储库将有所帮助。 https://github.com/hidekuma/lambda-layers-for-python-runtime