0

我已经部署了一些 AWS lambda 代码,但出现以下错误:

ENOENT No such file or directory found var/task/../data/cacert.pem

它正在寻找的文件在 lambda 中,请参见下图:

在此处输入图像描述

我使用 webpack 在那里添加文件:

{
   from: 'node_modules/tinify/lib/data/cacert.pem', to: 'app/../data/cacert.pem'
}

谁能帮我理解这是什么原因造成的?

编辑:

证书文件正在文件中导入,handler.js如下所示:

let data = fs.readFileSync(__dirname "/../data/cacert.pem").toString()

请注意,上面的代码是 webpack 在捆绑应用程序时添加的,我无法编辑该导入语句。第三方库 (tinify.js) 需要该证书。

4

1 回答 1

0

您在导入证书的代码中有错误。您没有正确构建路径。

您应该使用以下内容:

const path = require('path');
const fs = require('fs');

const cert = fs.readFileSync(path.join(__dirname, './data/cacert.pem')).toString();

path.join将根据处理程序文件的位置以及处理程序和证书之间的相对路径构造正确的路径。

于 2021-08-21T12:57:07.927 回答