我想在 AWS Lambda 中运行一段调用 shell 命令的 Java 代码(在我的例子中是 wkhtmltopdf
)。我似乎不知道如何打包 Lambda 来使其工作:
无法运行程序“wkhtmltopdf”:错误=2,没有这样的文件或目录:java.io.IOException
我已经能够让它与 Node.js 一起工作。我猜这是因为“包”在上传后被提取,而使用 Java 时,jar 保持压缩状态,因此无法从 java.lang.ProcessBuilder
访问可执行文件。
最佳答案
我能够使用 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
之后我就可以选择并应用图层(记住按保存)。
关于java - 如何使控制台命令可用于用 Java 编写的 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56011846/