2015-11-04 9 views
4

i downloaed phantomjs двоичный от https://github.com/bprodoehl/phantomjs/releases/, хорошо проверить на моем локальном хосте.как использовать phantomjs 2.0 в AWS Lambda

пакет и создать функцию AWS лямбда

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 имеет довольно огромную стоимость запуска (память + процессор), и поэтому ваш счет лямбда, вероятно, будет довольно высоким для стоимости, которую вы получаете.

Предлагаю вам посмотреть, сможет ли https://PhantomJsCloud.com удовлетворить ваши потребности в этой ситуации. (Раскрытие: я написал)

Если вы продолжите вниз путь лямбды, попробуйте после этого ресурса: https://github.com/justengland/phantom-lambda-template

+0

http://api.phantomjscloud.com/ круто, спасибо Jasons –

Смежные вопросы