【发布时间】:2019-03-12 04:04:32
【问题描述】:
我一直在尝试使用 packer 从 Lambda 为特定用例创建 AMI。我正在使用 bash 自定义运行时环境。我拉出打包机包并解压缩。
但是当我尝试运行可执行文件时,Lambda 以退出状态 1 将我抛出,并且错误也不是描述性的。我尝试通过几种方式解决此问题-
将打包程序目录路径添加到 $PATH,但我无法获取 .profile 或 .bashrc,它说它们不存在。
尝试向 Lambda 添加一个带有打包程序可执行文件的层,但仍然没有帮助。
代码-
echo "Installing Packer..."
curl -qL -o packer.zip https://releases.hashicorp.com/packer/1.1.1/packer_1.1.1_linux_amd64.zip
echo "Unzipping Packer"
unzip packer.zip
echo "Changing permissions on packer"
chmod 777 ./packer
echo "Running Packer Validate"
./packer validate ${LAMBDA_TASK_ROOT}/packer.json
Lambda 控制台日志 -
% Total % Received % Xferd Average Speed Time Time
Time Current Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 15.8M 100 15.8M 0 0 48.3M 0 --:--:-- --:--:-- --:--:-- 49.2M
END RequestId: 14cb72cf-c7ff-4a4d-a1c1-99d145395aef
REPORT RequestId: 14cb72cf-c7ff-4a4d-a1c1-99d145395aef Init
Duration: 61.04 ms Duration: 5623.92 ms Billed Duration: 5700 ms Memory Size: 1408 MB Max Memory Used: 274 MB
RequestId: 14cb72cf-c7ff-4a4d-a1c1-99d145395aef Error: Runtime
exited with error: exit status 1
Runtime.ExitError
顺便说一句,有什么办法可以让 lambda 日志更具描述性?如果执行失败,它甚至不打印出 echo 语句?
以前有人遇到过这种情况吗?任何线索都会有所帮助。
提前感谢您的帮助:)
【问题讨论】:
-
您能否将您从控制台日志中获得的确切文本以及源代码复制/粘贴到您的 Lambda 函数中?
-
这看起来像是
curl命令之后的错误。一堆无服务器框架允许使用 Docker 镜像。 AWS Lambda 是否允许使用 Hashi Packer 映像,还是在这种功能上仍然落后?你可以这样直接跳到packer validate。 -
什么是“bash 自定义运行时环境”——你有关于这个自定义环境的设置脚本或文档吗?例如,
unzip在环境中是否可用?你能自定义 bash 选项吗(例如,添加bash -x用于命令跟踪输出)?
标签: bash amazon-web-services aws-lambda packer