AWS Lambda Fonction est de retour “Impossible de trouver le module 'index'” pourtant, le gestionnaire dans la config est mis à l'index
Comme mon titre l'explique, j'obtiens l'erreur suivante:
{
"errorMessage": "Cannot find module 'index'",
"errorType": "Error",
"stackTrace": [
"Function.Module._resolveFilename (module.js:338:15)",
"Function.Module._load (module.js:280:25)",
"Module.require (module.js:364:17)",
"require (module.js:380:17)"
]
}
J'ai essayé les deux solutions proposées dans la création d'un lambda-fonction-en-aws-de-fichier zip et simple-node-js-exemple-en-aws lambda
Ma config ressemble actuellement:
et ma structure de fichier est:
et mon index.js fonction de gestionnaire ressemble :
exports.handler = function(event, context) {
Quoi d'autre pourrait être à l'origine de ce problème de côté à partir de ce qui a été dit dans ces deux réponses ci-dessus? J'ai essayé les deux solutions, et j'ai aussi plus de mémoire allouée à la fonction juste au cas ou c'est pourquoi elle ne pouvait pas courir.
MODIFIER -
Pour le bien de l'essayer, j'ai créé un même version simplifiée de mon code d'origine et ça ressemblait à ça:
var Q = require('q');
var AWS = require('aws-sdk');
var validate = require('lambduh-validate');
var Lambda = new AWS.Lambda();
var S3 = new AWS.S3();
theHandler = function (event, context) {
console.log =('nothing');
}
exports.handler = theHandler();
Et encore ne fonctionne toujours pas avec la même erreur?
- Ayant exactement le même problème.... avec l'erreur
Cannot find module '/var/task/index'
pendant lamdba bootstrap. Merci de poser la question!
Vous devez vous connecter pour publier un commentaire.
Essayer de les compresser et de télécharger le contenu du dossier lambda-créer-timelapse. Pas le dossier lui-même.
Si ce n'était pas clair pour quelqu'un d'autre, voici les étapes:
Étape 1
Accédez au dossier de votre projet, et ouvrez ce dossier, de sorte que vous êtes à l'intérieur du dossier:
Étape 2
Sélectionnez toutes les images que vous souhaitez télécharger pour Lambda:
Étape 3
Cliquez-droit et compresser les fichiers que vous avez choisis:
Cela vous donnera une .fichier zip, qui est le fichier que vous devez télécharger pour Lambda:
Il y a beaucoup de façons d'automatiser cela, mais c'est le manuel de procédure.
J'ai rencontré ce problème quelques fois moi-même, et cela a à voir avec la compression de dossier au lieu de simplement le contenu comme vous êtes censé le faire.
Pour ceux qui travaillent à partir de la borne...
Tandis qu'à l'INTÉRIEUR du répertoire où l' .js fichiers sont assis, exécutez la commande suivante:
zip -r ../zipname.zip *
La
*
est demandant au client de compresser tout le contenu à l'intérieur de ce dossier,../zipname.zip
est en disant qu'il le nom du fichierzipname.zip
et le placer juste à l'extérieur de ce répertoire en cours.J'ai eu le même problème il y a quelque temps - je l'ai reformaté le code.
Corriger
Lambda
déclaration de fonction peut ressembler à ceci:Vous pouvez avoir d'autres erreurs de syntaxe qui empêchent la
index.js
fichier correctement exécuté. Essayez d'exécuter votre code localement à l'aide d'un fichier à l'aide de laindex.js
comme votre propre module.Le problème se produit lorsque le gestionnaire ne peut pas être situé dans le zip dans le premier niveau. Donc, à chaque fois que vous voyez une telle erreur, assurez-vous que le fichier est au premier niveau du explosé au dossier.
Pour résoudre ce zip les fichiers et non pas le dossier qui contient les fichiers.