无法获得幻影在AWS Lambda上工作[英] Can't get phantomjs to work on aws lambda

问题描述

我正在尝试使用node-lambda和我在网上找到的位和碎片来执行phantomjs https://github.com/justengland/phantom-lambda-template

我有一些问题,使用node43部署节点lambda,但手动安装最新的源似乎有助于这方面.

但现在我正在遇到兰布的函数遇到问题.我得到

2016-04-12T16:47:12.133Z    3330adb9-00ce-11e6-9c08-d79a6bc84748    Calling phantom:  /var/task/phantomjs [ '/var/task/phantomjs-script.js' ]
2016-04-12T16:47:12.236Z    3330adb9-00ce-11e6-9c08-d79a6bc84748    Error: spawn EACCES
    at exports._errnoException (util.js:870:11)
    at ChildProcess.spawn (internal/child_process.js:298:11)

似乎lambda无法访问幻像二进制文件. 有没有办法,我可以给出更多权限才能这样做?

感谢

推荐答案

此问题的原因可能是您将本地构建的二进制文件部署到AWS Lambda. lambda要求它为亚马逊Linux编译的二进制文件,否则它无法执行它们(除非您是超级幸运).

如果您正在调用任何可执行文件或使用二进制文件的库,您需要在带Amazon Linux的EC2机器上编译它们并在Lambda功能中使用结果. 这是一个非常基本的教程

如果您已经完成了,也确保您使用的二进制文件是可执行的(您可以通过调用chmod 777 your_executable)来执行此操作.我猜你已经做过(也应该在你的案件中照顾这一点),但这是EACCES错误的主要来源.

其他推荐答案

这有点旧,但我刚刚解决了一个相关的问题,并希望在这里发布后部的关键件.除了@birnbaum表示需要在Amazon Linux机器上编译的二进制文件,还需要在Linux机器上捆绑您的可部署包(zip文件)!如果您没有,则运行时将能够找到您的二进制文件,但不会创建实际的浏览器实例.

本文地址:https://www.itbaoku.cn/post/1739877.html