node-lambda - TypeError:处理程序不是函数

Posted

技术标签:

【中文标题】node-lambda - TypeError:处理程序不是函数【英文标题】:node-lambda - TypeError: handler is not a function 【发布时间】:2016-09-09 20:45:26 【问题描述】:

AWS 新手,到目前为止发现它非常简单,但在打包 lambda 函数时遇到了困难。

我正在使用 node-lambda 来尝试运行该函数,但在 node-lambda 运行时不断收到以下错误:

/usr/local/lib/node_modules/node-lambda/lib/main.js:93
      handler(event, context, callback);
      ^

TypeError: handler is not a function
    at Lambda._runHandler (/usr/local/lib/node_modules/node-lambda/lib/main.js:93:7)
    at Lambda.run (/usr/local/lib/node_modules/node-lambda/lib/main.js:49:8)
    at Command.<anonymous> (/usr/local/lib/node_modules/node-lambda/bin/node-lambda:89:12)
    at Command.listener (/usr/local/lib/node_modules/node-lambda/node_modules/commander/index.js:301:8)

我的 index.js 文件有这样声明的处理程序

exports.myHandler = function(event, context) 

我的 .env 中的 AWS_HANDLER 设置为 index.handler。我觉得我错过了一个明显的步骤。

【问题讨论】:

您已将其命名为 myHandler。您需要将其命名为 handler 或更改您告诉 Lambda 查找的名称。 我知道这很简单。一百万谢谢! 【参考方案1】:

使用exports.handler = async function(event, context) 代替 exports.myHandler = function(event, context)

【讨论】:

仅供参考,AWS Lambda JS 运行时直到 2018 年 4 月才支持异步/等待,也就是最初提出这个问题的 2 年后。

以上是关于node-lambda - TypeError:处理程序不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Angular 12 TypeError:无法在 HttpHeaders.applyUpdate 处读取 null 的属性(读取“长度”)

无法准确解读错误:TypeError:路径必须是绝对路径或在 ServerResponse.sendFile 处指定 res.sendFile 的根

Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(

Blazor TypeError:无法在 Object.e 处读取 null 的属性“removeChild”[作为 removeLogicalChild]

无法让phantomjs在aws lambda上工作

TypeError:字符串索引必须是整数 Python 2