Создание AMI из AWS Lambda - PullRequest
3 голосов
/ 12 марта 2019

Я пытался использовать упаковщик для создания AMI из Lambda для конкретного случая использования. Я использую пользовательскую среду выполнения 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

Журнал лямбда-консоли -

    % 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

Кстати, можно ли что-нибудь сделать, чтобы лямбда-журналы были более информативными? Он даже не выводит эхо-операторы, если выполнение не удается?

Кто-нибудь был в такой ситуации раньше? Любые выводы помогут.

Заранее спасибо за помощь:)

Ответы [ 3 ]

1 голос
/ 12 марта 2019

Не пытайтесь запустить Packer в Lambda, используйте AWS ECS Fargate и запустите официальный образ докера .

0 голосов
/ 12 марта 2019

Среда выполнения Lambda монтируется в файловой системе, доступной только для чтения, за исключением /tmp, который обеспечивает 512 МБ свободного пространства.Добавьте cd /tmp в начало вашего Bash-скрипта, чтобы манипулировать загруженным файлом во временной папке.

0 голосов
/ 12 марта 2019

Если вы хотите создать AMI с использованием лямбды в определенное время, например, запустить лямбда с помощью задания cron и создать резервную копию AMI ec2, вы можете следить за моим блогом:

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 и запускаю лямбду с помощью облачного наблюдения.если у вас возникнут какие-либо проблемы, вы можете связаться с самым простым способом, который я нашел, чтобы сделать резервную копию AMi, используя lambda

, и с вашей ошибкой я бы предложил снова проверить путь и импортировать настройки в lambda it cloud only path error, иначе поделитесь некоторым вашим кодомСнимок экрана так может помочь

...