Aws lambda 函数在本地工作,但不在AWS Lambda上工作

Aws lambda 函数在本地工作,但不在AWS Lambda上工作,aws-lambda,jsreport,Aws Lambda,Jsreport,我使用jsreport呈现HTML并生成PDF文件,它在本地工作,但在Lambda上,它抛出以下错误: { "errorMessage": "Error during rendering report: Cannot read property 'filter' of undefined", "errorType": "TypeError", "stackTrace": [ "Phantom.execute (/var/task/node_modules/jsreport-p

我使用
jsreport
呈现HTML并生成PDF文件,它在本地工作,但在Lambda上,它抛出以下错误:

{
  "errorMessage": "Error during rendering report: Cannot read property 'filter' of undefined",
  "errorType": "TypeError",
  "stackTrace": [
    "Phantom.execute (/var/task/node_modules/jsreport-phantom-pdf/lib/phantom.js:169:53)",
    "/var/task/node_modules/jsreport-core/lib/render/render.js:118:23",
    "tryCatcher (/var/task/node_modules/bluebird/js/release/util.js:16:23)",
    "Promise._settlePromiseFromHandler (/var/task/node_modules/bluebird/js/release/promise.js:512:31)",
    "Promise._settlePromise (/var/task/node_modules/bluebird/js/release/promise.js:569:18)",
    "Promise._settlePromise0 (/var/task/node_modules/bluebird/js/release/promise.js:614:10)",
    "Promise._settlePromises (/var/task/node_modules/bluebird/js/release/promise.js:693:18)",
    "Async._drainQueue (/var/task/node_modules/bluebird/js/release/async.js:133:16)",
    "Async._drainQueues (/var/task/node_modules/bluebird/js/release/async.js:143:10)",
    "Immediate.Async.drainQueues (/var/task/node_modules/bluebird/js/release/async.js:17:14)",
    "runCallback (timers.js:672:20)",
    "tryOnImmediate (timers.js:645:5)",
    "processImmediate [as _immediateCallback] (timers.js:617:5)"
  ]
}

相同的环境变量,相同的节点版本。

以下是生成上述错误的行:

这意味着对象路径
选项。幻影
未定义


您必须检查如何在Lambda中设置
定义。

事实证明,这是此库的一个问题:


我通过将正确的
rootDirectory
选项传递给jsreport解决了这个问题。

有关提出一个好问题的提示,请参阅:仅供参考,如果您在本地运行的node版本高于当前AWS运行时,您可以在AWS上获得具有不同功能的不同版本的node模块,如果您在本地测试,请确保您使用的节点版本与aws上的相同。谢谢您的回答。我想出来了。
var phantom = this.definition.options.phantoms.filter(function (p) {
  return p.version === request.template.phantom.phantomjsVersion
})