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

标签 java aws-lambda

我想在 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/

相关文章:

java - 我的递归方法无法正确返回 char 出现的总数

java - 将 Java 变量传递给 jQuery 函数的 JavascriptExecutor 参数

java - 使用 Jackson 序列化属性时应用 JsonView

java - 语音到文本翻译所需的 Sphinx4 配置

api - 从 AWS Lambda 函数创建 CloudFormation 堆栈,传递 API 网关参数

java - 如何检测 Google 电子表格中的更改? java

python - 如何从 Node.js AWS Lambda 函数运行 Python 脚本

amazon-web-services - 如何在单个 CloudFormation 堆栈上创建 2 个 AWS lambda?

amazon-web-services - 如何在 lambda cloudformation 模板中添加 vpc 配置部分

node.js - 如何在 Amazon Cognito 中高效获取大量用户