我已经使用内联代码编辑器创建了lambda函数,用于使用zencoder进行视频转换过程,它的工作正常。
现在我必须调整3种不同尺寸的图像,从一个桶到另一个桶。
对于这种情况,我需要导入一些python模块。但它表示没有模块发现图像的错误。
这是我的lambda代码。
import boto3
import cStringIO
import urllib
import os
import image
fp=urllib.urlopen('iamgeurl')
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
im2 = im.resize((500, 100), Image.NEAREST)
out_im2 = cStringIO.StringIO()
im2.save(out_im2, 'PNG')
conn = boto.connect_s3()
b = conn.get_bucket('Bucketname')
k = b.new_key('example.png')
k.set_contents_from_string(out_im2.getvalue())
答案 0 :(得分:2)
首先,从lambda仪表板导出代码。然后执行以下操作:
将下载的包解压缩到一个目录中,例如project-dir。
使用pip安装任何库。同样,您可以在目录的根级别安装这些库。
pip install module-name -t / path / to / project-dir 压缩project-dir目录的内容,这是您的部署包。
压缩目录内容,而不是目录。 Zip文件的内容可用作Lambda函数的当前工作目录。例如:/project-dir/codefile.py/lib/yourlibraries
将zip文件上传回lambda函数。
有关详细信息:http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
答案 1 :(得分:0)
要使用您的依赖项和源文件构建zip,我使用的是为此特定情况创建的名为juniper的库。
使用非常简单的清单,您可以轻松创建需要在控制台或通过awscli输入的zip工件。
在您的情况下,如果您有带有image==1.5.27
的requirements.txt或所需的任何版本。带有以下清单:
functions:
converter:
requirements: ./src/requirements.txt.
include:
- ./src/lambda_function.py
运行juni build
后,您将具有包含图像依赖项的 converter.zip 文件。