34

Consider following code -

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

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

This is my function which is having business logic. My javascript file name is index.js.

Whenever I test this code on aws lambda, It gives following log(failed).

This is a screenshot of the Amazon Lambda Upload Site: enter image description here

0

3 Answers 3

36

In export.handler, you are not referencing the index function, but the result of its execution. I guess you want to export the function itself.

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

Or maybe directly

exports.handler = function index(event, context, callback) {
  //some code
}
Sign up to request clarification or add additional context in comments.

Comments

6

What you can do is to declare your function as the exports.handler. When your function exports to lambda, it comes with the namespace.

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

You can ignore the callback if you want fast code.

Comments

4

You may have incorrectly specified your handler as "index.js" instead of "index.handler"

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.