如何使用 Node.js 将文件写入和读取到 Lambda-AWS

Nav*_*zai 1 amazon-web-services aws-lambda

我试图在函数执行期间写入和读取 lambda 中的 /temp dir,我知道最好的方法是使用 S3,但对于这个项目,我必须使用节点文件系统

const fs = require('fs');


exports.handler = async (event) => {

const path = '/tem/hi.json';

const write = (file) => {

 fs.writeFile(file, "Hello World!", function(err) {

 if (err) return console.log(err);
 return {
 statusCode:200,
 body:JSON.stringify('data was written')
       };
    });
 };

 return write(path);
};
Run Code Online (Sandbox Code Playgroud)

Tha*_*ssi 5

您的文件路径有拼写错误。

改变

const path = '/tem/hi.json';

const path = '/tmp/hi.json';

另外,fs.writeFile是一个异步操作。做出承诺,这样你就可以await做到:

 const write = file => {
    return new Promise((res, rej) => {
        fs.writeFile(file, JSON.stringify({ message: 'hello world' }), (err) => {
            if (err) {
                return rej(err)
            }
            return res({
                statusCode: 200,
                body: JSON.stringify({message: 'File written successfully'})
            })
        })
    })
}
Run Code Online (Sandbox Code Playgroud)

最后,在您的客户端(处理程序的最后一行)上,只需像这样调用它:

return await write(path)