【发布时间】:2017-04-25 02:19:59
【问题描述】:
我有一个非常简单的节点 lambda 函数,它读取其中的打包文件的内容。我将代码作为 zip 文件上传。目录结构如下。
index.js
readme.txt
然后在我的 index.js 文件中:
fs.readFile('/var/task/readme.txt', function (err, data) {
if (err) throw err;
});
我不断收到以下错误 NOENT: no such file or directory, open '/var/task/readme.txt'.
我也试过 ./readme.txt。
我错过了什么?
【问题讨论】:
-
听起来文本文件可能没有包含在您的 zip 中,所以我首先会通过从控制台下载 zip 文件来仔细检查。否则,您介意添加更多上下文吗?你的处理函数的其余部分是什么样的?
-
实际上我正在使用无服务器框架将 zip 文件打包并上传到 S3。我检查了 S3 文件,它确实包含该文件。我要做的是读取 kms 加密数据密钥,以便我的 lambda 可以从 kms 获取加密密钥,以加密对第 3 方的出站 http 调用。
-
S3 文件是否在您期望的位置包含 txt 文件?此外,如果 serverless 更改了函数的 cwd,则使用像 './readme.txt' 这样的相对路径可能不起作用。也许尝试 __dirname + '/readme.txt' 或者您可以尝试使用 process.cwd() 记录 lambda 函数的 cwd
标签: node.js amazon-web-services lambda aws-lambda