Javascript AWS Lambda fs.readfile问题
我正在我的lambda包中打包一些我需要的文件。我已经使用了一些浮动的例子,几乎让它工作 我能够验证文件的路径是否正确Javascript AWS Lambda fs.readfile问题,javascript,file,aws-lambda,Javascript,File,Aws Lambda,我正在我的lambda包中打包一些我需要的文件。我已经使用了一些浮动的例子,几乎让它工作 我能够验证文件的路径是否正确 const deviceCert = path.resolve(certType + "-deviceCert.key"); 哪个登录到 "message": "Resolved path to TEST-deviceCert.key: /var/task/TEST-deviceCert.key" 当我尝试使用 fs.readFile(deviceCert, (err, d
const deviceCert = path.resolve(certType + "-deviceCert.key");
哪个登录到
"message": "Resolved path to TEST-deviceCert.key: /var/task/TEST-deviceCert.key"
当我尝试使用
fs.readFile(deviceCert, (err, data) => {
if (err) {
log.error(`Verify deviceCert failure: ${err}`);
responseBody = Helper.buildCORSResponse(502, JSON.stringify({ message: "Unable to locate file required" }));
return callback(null, responseBody);
}
});
我得到以下错误
Error: ENOENT: no such file or directory, open '/var/task/TEST-deviceCert.key'"
如果我能验证路径,为什么我不能阅读它
任何想法???从node.js API文档中复制:
resolve方法将一系列路径或路径段解析为绝对路径
换句话说,resolve将字符串序列连接为一个字符串,格式为绝对路径。但是,它不会检查此位置是否存在文件。您可以使用或来验证文件的存在和访问。最终确认serverless正在打包我需要的文件 使用fs.readdir,我能够调试问题并找到打包过程在Lambda包中创建的路径 /var/task/src//Certs/
希望这对将来的人有帮助 您的应用程序中是否部署了/var/task/TEST-deviceCert.key?我目前正在尝试确认这一点。我怀疑由于某种原因,这些文件没有正确打包。目前正在等待sls包的输出,以便我可以验证我的函数是否在serverless.yml包中定义了以下内容:indivualy:true include:-src/marlin/Certs/**谢谢matsev解决了这一问题并添加了fs.access,但目前仍无法确定文件的正确打包