测试我的lambda函数后,出现以下错误消息:
{
"errorMessage": "Unable to import module 'lambda_function'"
}
我上传了.zip
仅包括以下依赖关系:requests
,boto3
,PIL
,Pillow-4.0.0.dist-info
&lambda函数lambda_function.py
-这是从AWS复制的例如:
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)
我的处理程序是: lambda_function.lambda_handler
知道是什么问题吗?
首先:
默认情况下,lambda使用名为lambda_handler的特定关键字运行处理程序,您也可以在AWS Lambda控制台中更改处理程序条目。
或者,您必须更改处理程序的名称:
def handler(event, context):
for record in event['Records']:
,,,
def lambda_handler(event,context):
'''
您可以在使用某些框架时使用自定义处理程序,并明确提及处理程序名称。
例如,无服务器:
your_action:
handler: path/lambda_function.handler
其次:
问题的一部分是您必须检查是否包含要导入的模块。您必须看到详细的错误输出。您的情况的立即响应将是:无法导入lambda_function。
检查错误日志时,您可能会看到类似以下内容的内容:无法导入模块“ lambda_function”:没有名为PIL的模块
您还必须在此处检查有关导入PIL的问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句