Đây là mẫu mã hoàn chỉnh của quy trình PhantomJS
đơn giản, được khởi chạy dưới dạng NodeJS
child_process
. It is also available on github.
index.js
var childProcess = require('child_process');
var path = require('path');
exports.handler = function(event, context) {
// Set the path as described here: https://aws.amazon.com/blogs/compute/running-executables-in-aws-lambda/
process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'];
// Set the path to the phantomjs binary
var phantomPath = path.join(__dirname, 'phantomjs_linux-x86_64');
// Arguments for the phantom script
var processArgs = [
path.join(__dirname, 'phantom-script.js'),
'my arg'
];
// Launc the child process
childProcess.execFile(phantomPath, processArgs, function(error, stdout, stderr) {
if (error) {
context.fail(error);
return;
}
if (stderr) {
context.fail(error);
return;
}
context.succeed(stdout);
});
}
phantom-script.js
var system = require('system');
var args = system.args;
// Example of how to get arguments passed from node script
// args[0] would be this file's name: phantom-script.js
var unusedArg = args[1];
// Send some info node's childProcess' stdout
system.stdout.write('hello from phantom!')
phantom.exit();
Để có được một nhị phân PhantomJS làm việc với máy Linux của Amazon, hãy chuyển đến PhantomJS Bitbucket Page và tải xuống phantomjs-1.9.8-linux-x86_64.tar.bz2
.
Câu trả lời tuyệt vời @Tyler. –
@Tyler Trong cùng một tôi đã thực hiện mã của tôi. Mọi thứ đều ổn, ngoại trừ việc nó cho tôi thấy quá trình đã thoát trước khi hoàn thành. Tôi có thể biết điều gì đang gây ra vấn đề này không ?? – Vikas