AWS Lambda php порождает EACCESS

Я застрял уже довольно давно, и я просмотрел похожие сообщения здесь и то, что мне удалось погуглить.

Моя цель — запустить функцию PHP на лямбда-выражении, ничего особенного, я просто выполнил все шаги, описанные здесь https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/

Сообщение об ошибке, которое я получаю при запуске теста:

{
    "errorMessage": "RequestId: 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc Process exited before completing request"
}

И журнал:

START RequestId: 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc Version: $LATEST
2018-11-14T10:17:39.019Z 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc Error: spawn EACCES

    at _errnoException (util.js:1022:11)
    at ChildProcess.spawn (internal/child_process.js:323:11)
    at exports.spawn (child_process.js:502:9)
    at exports.handler (/var/task/php.js:8:15)
END RequestId: 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc
REPORT RequestId: 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc  Duration: 56.44 ms  Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 20 MB  RequestId: 832ee5e0-e7f6-11e8-bde8-b7d0d5da71bc Process exited before completing request

Итак, я подумал, что проблема в том, что («Ошибка: создать EACCES») разрешения на двоичные файлы после того, как я заархивировал их на моей машине с Windows 10, отсутствовали, поэтому я попытался добавить zip в свой git-bash и заархивировать с ним zip -r lambda.zip php-7-bin php.js helloLambda.php, но это не сработало либо.

И теперь у меня нет идей, я думаю, может быть, кто-то еще знает, что не так.


person Rokas Lakštauskas    schedule 14.11.2018    source источник


Ответы (1)


Я заставил это работать. Создал как php.js, так и helloLambda.php в экземпляре ec2 (с nano), например двоичный файл PHP, и заархивировал их в этой среде. После этого я загрузил .zip на свой компьютер с Windows и загрузил его в лямбда-функцию.

Жаль, что они не упоминают (в учебнике Amazon), что создание файлов в Windows не дает им необходимых разрешений.

person Rokas Lakštauskas    schedule 14.11.2018