AWS Lambda访问被拒绝到子文件夹中的模块

时间:2018-03-23 08:54:51

标签: node.js gulp aws-lambda

我有这个Nodejs lambda函数,其中一些文件在子文件夹中,如下所示:

- index.js
- connectors/
    - affil.js

尝试要求Cannot find module文件时出现affil.js错误。尝试使用fs.readFile阅读它会返回access denied错误。

当我将文件移动到根文件夹时,可以访问它。是否要求Lambda函数文件必须都位于根目录中?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

主要是因为压缩文件导致问题的方式。不必压缩根文件夹,而是必须选择所有文件并将其压缩如下,

请上传所有文件和子文件夹,如下所示。请在zip中包含node_modules文件夹。

enter image description here

答案 1 :(得分:0)

正如@Vijayanath Viswanathan指出的那样,问题在于如何创建zip文件而不是Lambda。

我以前用gulp-zip喂这个:

var src = gulp.src('src/**/*')

正确的方法是防止包含文件夹:

var src = gulp.src('src/**/*.js')

或(如果您需要包含其他文件扩展名的文件)

var src = gulp.src('src/**/*', {nodir: true})