从AWS Lambda创建AMI

时间:2019-03-12 04:04:33

标签: bash amazon-web-services aws-lambda packer

我一直在尝试使用打包程序从Lambda针对特定用例创建AMI。我正在使用bash定制运行时环境。我拉了包装器并解压缩。

但是,当我尝试运行可执行文件时,Lambda将我退出,退出状态为1,并且该错误也不具有描述性。我尝试通过几种方法解决此问题-

  1. 将打包程序目录路径添加到$ PATH,但是我无法获取.profile或.bashrc,它说它们不存在。

  2. 试图向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语句?

以前有人遇到过这种情况吗?任何线索都会有所帮助。

提前感谢您的帮助:)

2 个答案:

答案 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文件夹中下载的文件。