web-dev-qa-db-ja.com

AWS Lambda関数は、モジュール 'index'にないハンドラ 'handler'を返しています

次のコードを検討してください-

_function index(event, context, callback) {
  //some code
}
exports.handler = index();

{
  "errorMessage": "Handler 'handler' missing on module 'index'"
}
_

これはビジネスロジックを持っている私の機能です。私のjavascriptファイル名は_index.js_です。

このコードをaws lambdaでテストするたびに、次のlog(failed)が返されます。

これはAmazon Lambda Upload Siteのスクリーンショットです: enter image description here

27
AShly

export.handlerindex関数ではなく、その実行結果を参照しています。関数自体をエクスポートしたいと思います。

let index = function index(event, context, callback) {
  //some code
}
exports.handler = index;

または多分直接

exports.handler = function index(event, context, callback) {
  //some code
}
31
Alexis N-o

できることは、関数をexports.handlerとして宣言することです。関数がラムダにエクスポートされると、名前空間に付属します。

exports.handler = function(event, context) {
    //code
}

高速なコードが必要な場合は、コールバックを無視できます。

5
Lingbo Tang

ハンドラを「index.handler」ではなく「index.js」として誤って指定した可能性があります

2
rubyisbeautiful