2017-08-09 102 views
0

我想在AWS Lambda中對自己的lib做一個簡單的要求,但它找不到它。我錯過了什麼?AWS Lambda無法找到我的模塊

var a = require('./lib/a'); 

exports.handler = function(event, context, callback) { 
    callback(null, 'Testing'); 

} 

是的,這工作時測試它本地,但不是當壓縮和部署。我正在壓縮文件,而不是目錄,並刪除需求使其工作。

{ 
    "errorMessage": "Cannot find module './lib/a'", 
    "errorType": "Error", 
    "stackTrace": [ 
    "Function.Module._load (module.js:417:25)", 
    "Module.require (module.js:497:17)", 
    "require (internal/module.js:20:19)", 
    "Object.<anonymous> (/var/task/index.js:1:77)", 
    "Module._compile (module.js:570:32)", 
    "Object.Module._extensions..js (module.js:579:10)", 
    "Module.load (module.js:487:32)", 
    "tryModuleLoad (module.js:446:12)", 
    "Function.Module._load (module.js:438:3)" 
    ] 
} 

目錄結構: index.js 的lib/a.js

+0

「我正在壓縮文件,而不是目錄」。如果您不在zip文件中包含'./ lib'目錄,那麼您如何期望Lambda找到該模塊? –

回答

2

我荏苒只是文件

嘗試從AWS控制檯LAMBDA下載你的包。您將收到一個zip文件並嘗試在本地計算機上提取該文件。你能看到裏面有a.jslib文件夾嗎?

很可能,您上傳的zip文件可能錯過了lib目錄。

+0

我覺得自己像個白癡。不,它只是不在那裏,我正在爲亞馬遜修改一箇舊的構建腳本,並且lib目錄未添加到zip文件中。謝謝。 –