我可以在AWS Lambda函数中使用Pillow和numpy吗?

时间:2020-05-21 16:00:05

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

我正在尝试使用lambda函数对图像进行先贤者预测,我需要从

进行转换
s3 = boto3.resource('s3') 
bucket = s3.Bucket(bucket)
object = bucket.Object(key)
response = object.get()
file_stream = response['Body']

以适当的格式在

中使用
response = client.invoke_endpoint(EndpointName=endpoint_name, Body=json.dumps(data))

我在jupyter笔记本上进行了一些测试,发现以下命令可以完成工作:

im = Image.open(file_stream)
im_array = np.array(im)
data = img_data.tolist()

但需要PIL图像和NumPy。

是否有可能以lambda函数或任何其他方式导入这些库?

谢谢, 萨缪尔。

1 个答案:

答案 0 :(得分:-1)

最简单的方法是将PIL上传为Lambda层并使用现有的Numpy / Scipy Lambda层。相比较而言,链接到此处的无服务器框架教程比较麻烦。

对于Numpy:您已经可以访问AWS自动提供的numpy的公共可用Lambda层(“ ...以提供有关如何使用Lambda层的示例,我们正在发布一个公共层,其中包括NumPy和SciPy ...这个预先构建和优化的层可以帮助您非常快速地开始使用数据处理和机器学习应用程序。“-https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/)。

对于PIL:只需使用此处的说明:https://medium.com/@qtangs/creating-new-aws-lambda-layer-for-python-pandas-library-348b126e9f3e

我本人已为PIL完成此操作,并可以确认它是否有效。

相关问题