[英]AWS Lambda Package Native Executable with JAR
我有一个在JVM上运行的应用程序,作为胖罐提供。 它需要调用本机Linux二进制文件,例如ffmpeg
。 Zip文件需要包含哪些目录结构才能将jar和可执行文件打包在一起? 我找不到文档,只是使用我没有使用的构建工具的代码示例。
让我们假装我的lambda的名字是blah
。 我希望得到一个答案:
Deployable jar contains:
+ blah/ # contains fat jar
+ lib/ # contains ffmpeg
这是我写的一个不起作用的bash脚本。 它只是将fat jar和本机可执行文件放在dist/
目录中,然后再将它们压缩在一起。
FATJAR=blah-assembly-0.0.4.jar
mkdir -p dist/
rm -f dist/*
rm -f $DEPLOYED_ZIP
cp $FATJAR dist/
cp /usr/local/bin/ffmpeg dist/
(cd dist && zip -r $FATJAR ffmpeg && mv $FATJAR ../$DEPLOYED_ZIP)
只要包中包含的本机二进制文件出现在PATH中或通过其完整路径调用,zip文件的任何结构都将起作用。 在这两种情况下,这意味着您必须通过以下方式之一更新Java代码:
在撰写本文时,可以从LAMBDA_TASK_ROOT环境变量中读取在AWS Lambda系统上提取包内容的目录的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.