Node.js 在AWS Lambda中运行elasticdump(节点可执行文件)

Node.js 在AWS Lambda中运行elasticdump(节点可执行文件),node.js,bash,aws-lambda,Node.js,Bash,Aws Lambda,我希望在AWS Lambda函数中运行elasticdump命令。此软件包通过NPM安装,然后在CLI()上运行 我实现这一点的方法是在节点脚本中运行bash脚本。我将其安装到elasticdump的node\u modules文件夹中,然后以.zip格式上传到AWS Lambda 下面是调用bash脚本可执行文件的节点脚本本身: exports.handler = function (event, context, callback) { const execFile = requir

我希望在AWS Lambda函数中运行
elasticdump
命令。此软件包通过NPM安装,然后在CLI()上运行

我实现这一点的方法是在节点脚本中运行bash脚本。我将其安装到
elasticdump
node\u modules
文件夹中,然后以.zip格式上传到AWS Lambda

下面是调用bash脚本可执行文件的节点脚本本身:

exports.handler = function (event, context, callback) {
    const execFile = require('child_process').execFile;
    execFile('./run-elasticdump.sh', (error, stdout, stderr) => {
        if (error) {
            callback(error);
        }
        callback(null, stdout);
    });
}
bash脚本本身尝试运行
elasticdump
命令,该命令同样位于
node\u modules
文件夹中:

run-elasticdump.sh

elasticdump \
  --input=http://es.com:9200/template-filter \
  --output=templates.json \
  --type=template

以下是文件夹结构:

run-elasticdump
- node_modules
-- elasticdump
-- ...
- package.json
- index.js
- run-elasticdump.sh
运行lambda时,我收到以下错误:

    "elasticdump: command not found",
    "",
    "    at ChildProcess.exithandler (child_process.js:308:12)",
    "    at ChildProcess.emit (events.js:315:20)",
    "    at maybeClose (internal/child_process.js:1048:16)",
    "    at Socket.<anonymous> (internal/child_process.js:439:11)",
    "    at Socket.emit (events.js:315:20)",
    "    at Pipe.<anonymous> (net.js:673:12)"
  ]
“elasticdump:未找到命令”,
"",
“在ChildProcess.exithandler(child_process.js:308:12)”中,
“在ChildProcess.emit(events.js:315:20)”中,
“在maybeClose(内部/子进程js:1048:16)”,
“at Socket.(internal/child_process.js:439:11)”,
“在Socket.emit(events.js:315:20)”中,
“在管道上。(net.js:673:12)”
]
我认为这是因为安装在
node\u modules
文件夹中的
elasticdump
包在bash运行时未被识别

有什么想法或建议可以解决这个问题吗