Node.js 如何在AWS Lambda中使用phantomjs 2.0

Node.js 如何在AWS Lambda中使用phantomjs 2.0,node.js,amazon-web-services,phantomjs,Node.js,Amazon Web Services,Phantomjs,我把phantomjs二进制文件从 ,在本地主机上测试正常 打包并创建aws lambda函数 exports.handler = function (event, context) { var path = require("path"); var Process = require("child_process"); Process.exec(path.join(__dirname,"./bin/phantomjs")+" --version", function

我把phantomjs二进制文件从 ,在本地主机上测试正常

打包并创建aws lambda函数

exports.handler = function (event, context) {
    var path = require("path");
    var Process = require("child_process");

    Process.exec(path.join(__dirname,"./bin/phantomjs")+" --version", function (err, data) {
        if (err) {
            console.log(err.message);
            context.fail(err.stack);
        } else {
            context.succeed(data);
        }

    })
}
但在兰姆达测试时,总是

{"errorMessage":"Error: Command failed: /bin/sh: /var/task/bin/phantomjs: Permission denied

    at ChildProcess.exithandler (child_process.js:658:15)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:766:16)
    at Socket.<anonymous> (child_process.js:979:11)
    at Socket.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)"}
{“errorMessage”:“错误:命令失败:/bin/sh:/var/task/bin/phantomjs:权限被拒绝
在ChildProcess.exithandler(child_process.js:658:15)
在ChildProcess.emit(events.js:98:17)
在maybeClose(child_process.js:766:16)
插座处。(child_process.js:979:11)
在Socket.emit(events.js:95:17)
在Pipe.close(net.js:466:12)“}
有人知道吗?
谢谢

这不是你想要的答案,但是在像这样的“大二进制软件包”中使用Lambda不是一个好主意。我相信从技术上讲,做你想做的事情是可能的,但请记住,PhantomJs有一个相当大的启动成本(内存+cpu),因此你的lambda账单可能会对你所获得的价值相当高

我建议你看看在这种情况下是否能满足你的需要。(披露:我写的)

如果继续沿着Lambda路径,请尝试以下资源: