如何使Java编写的AWS Lambda可以使用控制台命令

时间:2019-05-06 20:16:20

标签: java aws-lambda

我想在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访问可执行文件。

1 个答案:

答案 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

之后,我可以选择并应用图层(记住按保存)。