【发布时间】:2017-01-18 01:27:06
【问题描述】:
我正在尝试上传一个带有压缩依赖项的 python lambda 函数,但由于某种原因,我不断收到
"errorMessage": "Unable to import module 'CreateThumbnail'"
每当我测试它时。
这是我采取的步骤,与these docs 几乎相同。
- 使用
virtualenv ~/lambda_env和source ~/lambda_env/bin/activate创建并激活一个virtualenv - 使用
pip install Pillow和pip install boto3安装Pillow 和boto3 - 带有
cd $VIRTUAL_ENV/lib/python2.7/site-packages和zip -r9 ~/CreateThumbnail.zip *的Zip 依赖项 -
使用
zip -g ~/CreateThumbnail.zip CreateThumbnail.py将实际的python lambda 函数添加到zip 文件,其中CreateThumbnail.py是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) 然后在控制台中我将处理程序设置为
CreateThumbnail.handler- 然后我通过 aws 控制台上传
CreateThumbnail.zip并单击“保存并测试”我得到
"errorMessage": "Unable to import module 'CreateThumbnail'"
我对此感到非常困惑,因为我觉得我在关注文档。谁能告诉我我在这里做错了什么?
【问题讨论】:
标签: python amazon-web-services lambda