我一直在尝试使用打包程序从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语句?
以前有人遇到过这种情况吗?任何线索都会有所帮助。
提前感谢您的帮助:)
答案 0 :(得分:0)
如果您想在特定时间使用lambda创建AMI,例如使用cron作业触发lambda并进行ec2的AMI备份,则可以关注我的博客:
https://knowihave.blogspot.com/2018/09/aws-auto-ami-backup-across-all-region.html
代码也可以在我的git上获得:
https://github.com/harsh4870/AWS-auto-ami-backup-across-all-region
在这里,我已经在节点js中编写了代码,并使用云手表触发了lambda。如果您遇到任何问题,可以联系我发现使用lambda进行AMi备份的最简单方法
并且由于您的错误,我建议再次检查路径,并将设置导入到lambda中,这只会使路径错误覆盖,否则共享一些代码屏幕截图,以便提供帮助
答案 1 :(得分:0)
Lambda执行环境安装在只读文件系统上,但/tmp
除外,它提供了512mb的暂存空间。将cd /tmp
添加到Bash脚本的开头,以操纵temp文件夹中下载的文件。