我想在AWS Lambda中运行一段Java代码,以调用shell命令(在我的情况下为wkhtmltopdf
)。我似乎无法弄清楚如何打包Lambda使其起作用:
Cannot run program "wkhtmltopdf": error=2, No such file or directory: java.io.IOException
我已经能够使其与Node.js一起使用。我猜这是由于一旦上传就提取了“包”,而对于Java,jar保持压缩状态,因此无法从java.lang.ProcessBuilder
访问可执行文件。
答案 0 :(得分:0)
我能够使用AWS Lambda Layers解决此问题。将bin/wkhtmltopdf
打包为一个zip文件,并使用类似的方法创建一个图层:
aws lambda publish-layer-version --layer-name wkhtmltopdf \
--description "wkhtmltopdf executable" \
--zip-file fileb://$(pwd)/wkhtmltopdf.zip \
--compatible-runtimes java8
之后,我可以选择并应用图层(记住按保存)。