在AWS lambda上将ImageMagick作为python子进程运行
我希望通过给AWS lambda一系列来自s3存储桶的图像来生成动画GIF,并将其下载到/tmp/文件夹中 我在文档中读到imagemagick预装在lambda上,但由于某些原因,我无法通过python子进程调用它:在AWS lambda上将ImageMagick作为python子进程运行,python,amazon-web-services,amazon-s3,imagemagick-convert,aws-lambda,Python,Amazon Web Services,Amazon S3,Imagemagick Convert,Aws Lambda,我希望通过给AWS lambda一系列来自s3存储桶的图像来生成动画GIF,并将其下载到/tmp/文件夹中 我在文档中读到imagemagick预装在lambda上,但由于某些原因,我无法通过python子进程调用它: import subprocess # ... some code later ... # Now, generate the gif input_dir = '/tmp/' output_dir = '/tmp/' args = (['convert', '-dela
import subprocess
# ... some code later ...
# Now, generate the gif
input_dir = '/tmp/'
output_dir = '/tmp/'
args = (['convert', '-delay', '60', '-dispose', 'Background', '+page'] +
files_list +
['-loop', '0', os.path.join(output_dir, 'animation.gif')])
try:
subprocess.check_call(args)
print("gif was generated")
except subprocess.CalledProcessError as e:
print("gif produced errors ...")
print(e.output)
知道如何通过lambda上的子进程调用imagemagick吗?我已经能够在本地和ec2上工作,但在lambda上没有运气。我得到的唯一响应是,它生成一个空白的.gif文件,并在输出“gif生成的错误…”后返回一个空的异常线程。Imagemagick仅在lambda函数是在Node.js中编写的情况下预安装。但是您的lambda函数是用Python编写的 从 AWS Lambda支持以下运行时版本:
- Node.js:v0.10.36
- Java:Java8
- Python:Python2.7
该死的。。。你知道我还能做什么吗?也可以打包imagemagick吗?看起来我必须将整个脚本从lambda移到服务器上,毕竟…以前从未使用过。您可以尝试PythonMagick,它是ImageMagick的Python接口。“您可以尝试PythonMagick,它是ImageMagick的Python接口。”是的,但是PythonMagick没有预先安装在AWS Lambda上,因此您必须将其包含在部署包中,这并不容易。有关说明,请参见。您看过本教程吗?