php - Aws-lambda-php 进程在完成请求之前退出
问题描述
错误:产生 php-7-bin/bin/php ENOENT
process.env['PATH'] = process.env['PATH'] + ':' +
process.env['LAMBDA_TASK_ROOT'];
const spawn = require('child_process').spawn;
exports.handler = function(event, context) {
var php = spawn('php-7-bin/bin/php',['helloLambda.php']);
var output = "";
//send the input event json as string via STDIN to php process
php.stdin.write(JSON.stringify(event));
//close the php stream to unblock php process
php.stdin.end();
//dynamically collect php output
php.stdout.on('data', function(data) {console.log("data",data);
output+=data;
});
//react to potential errors
php.stderr.on('data', function(data) {
console.log("STDERR: "+data);
});
//finalize when php process is done.
php.on('close', function(code) {
context.succeed(JSON.parse(output));
});
}
我尝试给出这些可能的路径:
'php-7-bin/bin/php' (as in doc)<br>
'./php-7-bin/bin/php'<br>
'~/php-7-bin/bin/php'<br>
'/php-7-bin/bin/php'<br>
'php'
这是我关注的文档: https ://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/
解决方案
由于错误清楚地指定了“没有这样的目录条目”。我尝试打印当前工作目录。
console.log(process.cwd()); /ouptput : 'var/task'.
然后将php路径更改为
var php = spawn('/var/task/php-lambda/php-7-bin/bin/php',['/var/task/php-lambda/helloLambda.php']);
推荐阅读
- javascript - 我的算法可以被视为 O(n) 吗?“查找具有唯一字符的最长子字符串”
- angular - 如何在 for 循环的内部代码中使用 jamine 编写单元测试用例?
- gitlab-ci - 应该在 gitlab-ci.yml 中添加什么参数来扩展作业日志大小(output_limit)?
- c# - Error while displaying photo on my datagridview
- javascript - 导出一个调用另一个而不是原始函数的新函数有什么意义?
- java - 我们可以在 Spring Boot 中使用解串器进行 getmapping,它的 pojo 类似于球衣的@beanparam
- html - 选择在某些机器上显示为白色的下拉框,但不是我的
- excel - 在 User32.dll 中找不到 DLL 入口点 OpenClipboard(错误 453)
- php - strpos function not working with special character
- android - Android Studio(数据绑定)看不到包含的布局元素