我已经被困了很长时间了,我在这里浏览了类似的帖子以及我已经设法在Google上找到的内容。
我的目标是在lambda上运行一个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
所以我以为问题是我在Windows 10机器上将其压缩后,二进制文件上的('Error:spawn EACCES')权限丢失了,所以我尝试将zip添加到git-bash并使用zip压缩
zip -r lambda.zip php-7-bin php.js helloLambda.php
但它也不起作用。
现在我没主意了,想也许别人可能知道这是怎么回事。
答案 0 :(得分:0)
我成功了。在ec2实例(使用nano)上创建了php.js和helloLambda.php,例如在该环境中的PHP二进制文件和zip'ed em。之后,我将.zip下载到Windows机器上,并将其上传到lambda函数。
很遗憾,他们没有提到(在Amazon教程中)在Windows上创建文件并没有赋予他们所需的权限。