如何在AWS中使用phantomjs 2.0 Lambda
问题描述:
我从 下载了phantomjs二进制文件,在我的本地主机上测试正常。如何在AWS中使用phantomjs 2.0 Lambda
包和创建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)"}
任何人有任何想法? 谢谢
答
不是你想要的答案,但是对于像这样的“大二进制包”使用Lambda并不是一个好主意。我相信在技术上可以做到你想做的事,但请记住PhantomJs的启动成本(内存+ cpu)相当大,所以你的lambda账单可能会相当高。
我建议你看看https://PhantomJsCloud.com是否能满足你在这种情况下的需求。 (披露:我写的)
如果继续向下LAMBDA路径,尝试下面这个资源:https://github.com/justengland/phantom-lambda-template
http://api.phantomjscloud.com/很酷,感谢JASONS –