从 AWS Lambda 创建 AMI

Cha*_*adi 5 bash packer 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,有什么办法可以让 lambda 日志更具描述性吗?如果执行失败它甚至不会打印出 echo 语句?

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

先谢谢您的帮助 :)

Har*_*var 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

这里我在node js中编写了代码并使用云手表触发lambda。如果您遇到任何问题,您可以联系我发现使用 lambda 进行 AMi 备份的最简单方法

对于您的错误,我建议再次检查路径并将设置导入 lambda it cloud only 路径错误,否则分享一些您的代码屏幕截图,以便可以提供帮助