web-dev-qa-db-fra.com

La fonction AWS Lambda renvoie le gestionnaire «gestionnaire» manquant sur le module «index»

Envisagez de suivre le code -

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

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

C'est ma fonction qui a une logique métier. Mon nom de fichier javascript est index.js.

Chaque fois que je teste ce code sur aws lambda, il donne la suite log(failed).

Il s'agit d'une capture d'écran du site de téléchargement Amazon Lambda: enter image description here

27
AShly

Dans export.handler, vous ne faites pas référence à la fonction index, mais au résultat de son exécution. Je suppose que vous voulez exporter la fonction elle-même.

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

Ou peut-être directement

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

Ce que vous pouvez faire est de déclarer votre fonction en tant que exports.handler. Lorsque votre fonction exporte vers lambda, elle est fournie avec l'espace de noms.

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

Vous pouvez ignorer le rappel si vous voulez un code rapide.

5
Lingbo Tang

Vous avez peut-être incorrectement spécifié votre gestionnaire comme "index.js" au lieu de "index.handler"

2
rubyisbeautiful