2015-11-04 125 views
4

我從 下載了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)"} 

任何人有任何想法? 謝謝

回答

2

不是你想要的答案,但是對於像這樣的「大二進制包」使用Lambda並不是一個好主意。我相信在技術上可以做到你想做的事,但請記住PhantomJs的啓動成本(內存+ cpu)相當大,所以你的lambda賬單可能會相當高。

我建議你看看https://PhantomJsCloud.com是否能滿足你在這種情況下的需求。 (披露:我寫的)

如果繼續向下LAMBDA路徑,嘗試下面這個資源:https://github.com/justengland/phantom-lambda-template

+0

http://api.phantomjscloud.com/很酷,感謝JASONS –