2016-03-07 11 views
5

Mam prosty plik exports.js i ja spakowany folder i przesłać go do Lambda ale na czasie wykonywania daje błąd:Nie można zaimportować moduł w Lambda

"errorMessage": "Cannot find module 'exports'", 
"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)" 
] 

Każda pomoc będzie mile widziane. Dzięki

+0

Czy możesz opublikować swoją strukturę folderów i ewentualnie tam, gdzie próbujesz "wymagać" modułu "eksportu"? – idbehold

+0

Jeśli nadal napotykasz problem, może to pomóc: http://stackoverflow.com/a/43105773/4455570 Pozdrawiam! –

Odpowiedz

2

1.Name plik exports.js

2.Name handler, wewnątrz pliku, exports.handler

exports.handler = function (event, context) 
{ 
    var YourSkill = new YourSkill(); 
    YourSkill.execute(event, context); 
} 

3.Ustawić uchwytu w config lambda do eksportu. handler

4. Rozpakuj tylko zawartość folderu, jeśli zip folder, a także nie znajdzie pliku.

5.Rename plik zip exports.zip

0

Dołącz katalog o nazwie node_modules w swoim katalogu. Spakuj plik index.js + node_modules i prześlij.

-1

Mam podobne doświadczenie. Podczas gdy to, co zrobiłem, jest w trybie bezserwerowym, ale uważam, że błąd nadal jest istotny, ponieważ pochodzi również z lambda AWS. Jest to błąd, który widziałem:

Unable to import module 'src/handlers/list': Error 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/var/task/src/handlers/list.js:400:18) 
    at __webpack_require__ (/var/task/src/handlers/list.js:20:30) 
    at Object.<anonymous> (/var/task/src/handlers/list.js:370:18) 
    at __webpack_require__ (/var/task/src/handlers/list.js:20:30) 
    at /var/task/src/handlers/list.js:63:18 
    at Object.<anonymous> (/var/task/src/handlers/list.js:66:10) 

Używam WebPACK i rozwiązać go usuwając bibliotekę w moich webpack.config.js i nazwa biblioteki jest oczywista.

co zrobiłem jest usunięcie tej linii od webpack.config.js:

const nodeExternals = require("webpack-node-externals"); 

proszę dać mi znać, jeśli potrzebujesz więcej szczegółów. Dziękujemy