Node.js 错误:使用子进程调用二进制文件在节点AWS Lambda函数中生成EACCES

Node.js 错误:使用子进程调用二进制文件在节点AWS Lambda函数中生成EACCES,node.js,permissions,aws-lambda,Node.js,Permissions,Aws Lambda,我在基于节点的AWS Lambda函数中有以下简化代码: import { execFile } from 'child_process'; execFile('./node_modules/webp/bin/dwebp', ['./tmp/file.wepb', '-o', './tmp/newFile.png'], (error, stdout, stderr) => { if (error) throw error; }); 如图所示,我在node\u modules/web

我在基于节点的AWS Lambda函数中有以下简化代码:

import { execFile } from 'child_process';
execFile('./node_modules/webp/bin/dwebp', ['./tmp/file.wepb', '-o', 
'./tmp/newFile.png'], (error, stdout, stderr) => {
  if (error) throw error;
});

如图所示,我在
node\u modules/webp/bin
中有一个二进制文件,我用
execFile
调用它,将输出保存在文件夹
/tmp/
中,但我得到了错误
错误:spawn EACCES
。可能我没有被拒绝访问文件夹
/tmp/
,因为我的代码正在成功地将文件写入其中。我可能只会被拒绝访问命令
dwebp
本身。我不知道怎么处理。希望您能提供帮助。

添加我的评论作为答案,因为这似乎是解决您问题的方法


写入文件夹意味着您具有写入权限。您可能仍然缺少执行权限


您可以使用
fs
模块中的
chmod
编辑节点内的权限

写入文件夹意味着您具有写入权限。您可能仍然缺少执行权限。此外,您可以使用
fs
模块中的
chmod
命令使用节点编辑权限@谢谢你!使用
fs.chmodSync()
完成了此任务。