0

我試圖創建一個lambda函數從S3存儲需要Apache日誌文件,它們解析成JSON文件,並將它們添加到ES,如下面的鏈接推薦:AWS拉姆達錯誤

https://github.com/awslabs/amazon-elasticsearch-lambda-samples

但我總是面臨以下錯誤:

{ 
    "errorMessage": "Cannot find module 'byline'", 
    "errorType": "Error", 
    "stackTrace": [ 
     "Object.<anonymous> (/var/task/index.js:19:18)", 
     "Module._compile (module.js:409:26)", 
     "Object.Module._extensions..js (module.js:416:10)", 
     "Module.load (module.js:343:32)", 
     "Function.Module._load (module.js:300:12)", 
     "Module.require (module.js:353:17)」 
    ] 
} 

請您好好推薦一個解決方案。

+0

'byline'是你安裝在應用程序中的NPM模塊嗎?您是否將其部署到Lambda中? –

回答

0

顯然你不包括Lambda函數所需的byline包。您必須在本地運行npm install並將您的源代碼和所有依賴項打包到zip文件中,然後將其上傳到Lambda。 Lambda不會爲您運行npm install,並且它預計會上傳所有依賴關係。這被記錄在here

+0

我嘗試上傳所有的依賴關係,並對我的部署包的結構稍作修改。我現在面臨的錯誤是: { 「errorMessage」:null } –

0

嘗試

npm -s install --production --prefix <folder> 

然後壓縮它,並把它上傳。