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> 

然后压缩它,并把它上传。