在互联网上其他任何地方都找不到有效的答案后,我将提交此“自问自答”教程
如何PhantomJS
从NodeJS
脚本上运行一个简单的进程AWS Lambda
?我的代码在本地计算机上运行良好,但是尝试在Lambda上运行时遇到了其他问题。
这是一个简单PhantomJS
过程的完整代码示例,以形式启动NodeJS
child_process
。
它也可以在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();
要获取可与Amazon Linux机器一起使用的PhantomJS二进制文件,请转到PhantomJS
Bitbucket页面
并下载phantomjs-1.9.8-linux-x86_64.tar.bz2
。
这种方法很不一致。我肯定这不是实现这一点的正确方法。
我正在尝试使用QT的NFC模块读取我的Android手机上的NFC标签。 根据这一页面,Qt将从5.6版本开始在Android上支持NFC。这个版本还没有发布,所以我按照本页上的说明,从源代码处构建了它,并将它安装在Qt Creator中。 我一定是错过了什么... 更新1 似乎需要修改AndroidManifest.xml文件。我尝试了不同的方法,但似乎都没有产生预期的效果。只有当清单定义如下所
问题内容: 几天来,我们有了JDK8。我试图用SPDY服务器运行Jetty。在JDK8中,没有NPN支持,因此其结尾为: 我已经npn-boot-1.1.6.v20130911.jar在可与最新JDK7一起使用的CLASSPATH上运行它。 关于如何在JDK8上使用SPDY运行Jetty有任何解决方法? 问题答案: 与以前的Java版本一样,Java 11中没有Public JRE。不要与jre以
问题内容: 我回到了带有Jetty和SPDY的JDK8,并且看到现在Jetty9.2支持ALPN协议而不是NPN(请参阅我的问题如何在JDK8上使用SPDY运行Jetty?)。所以我设置了: 但是现在我有了例外: 我使用和码头9.2.2.v20140723。 我从JDK 1.7和WinXP 遇到的相同错误,如果从 此执行在我的代码中指向: 似乎即使使用ALPN码头,也需要npn-boot中的类。是
问题内容: 我已经看到了一些关于在Azure上运行Redis的人的参考,但是没有实现或任何形式的“方法”。有人看过这样的例子吗? 问题答案: 下载适用于Windows的Redis-请参阅https://github.com/ServiceStack/ServiceStack.Redis上的“ Redis Service builds for Windows”部分。我最终使用了dmajkic的win
我有一个Docker映像,它是一个Node.js应用程序。应用程序从本地运行的Redis检索一些配置值。因此,我试图在Docker映像的同一容器中安装和运行Redis。 我如何扩展Docker文件并在其中配置Redis? 截至目前,Dockerfile如下所示: