我可以使用以下函数从AWS Lambda上的nodejs调用我的python。但是,因为我需要特定的python库,我在env目录中创建了一个virutalenv。我压缩了所有东西,并推送到Lambda。但是,当我尝试从虚拟目录调用python时,我得到了一个Permission Denied错误。从AWS lambda上的nodejs调用python - 权限被拒绝
我试图在调用python之前修改Lambda上的chmod权限,但得到了操作不允许的权限。我怎样才能让它运行?
console.log('Loading event');
var exec = require('child_process').exec;
exports.handler = function(event, context) {
exec('env/bin/python district.py \'' + JSON.stringify(event) + '\'', function(error, stdout) {
var obj = stdout.toString();
context.done(error, obj);
});
};
这里的错误:
{
"errorMessage": "Command failed: /bin/sh: env/bin/python: Permission denied\n",
"errorType": "Error",
"stackTrace": [
"",
"ChildProcess.exithandler (child_process.js:658:15)",
"ChildProcess.emit (events.js:98:17)",
"maybeClose (child_process.js:766:16)",
"Process.ChildProcess._handle.onexit (child_process.js:833:5)"
]
}
谢谢。点#1应该对我来说很明显。第二点我尝试过但也许我做错了? 'chmod + x env/bin/python'我得到这个错误:'chmod:改变env/bin/python的权限:不允许操作' – xcalx9
如果我尝试'sudo chmod + x env/bin/python'我得到* * sudo:命令未找到** – xcalx9
**不允许的操作:**您使用的是什么文件系统?显然不是默认的Linux文件系统(ext2,ext3或ext4)。 ** sudo:命令未找到:**您使用的是什么分配?并非所有的发行版都安装并配置了sudo。你可能想用'su'代替。 –