首页 > 解决方案 > 如何使用 Node.js 向 Lambda-AWS 写入和读取文件

问题描述

我试图在函数执行期间在 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);
};

标签: amazon-web-servicesaws-lambda

解决方案


您的文件路径有错字。

改变

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'})
            })
        })
    })
}

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

return await write(path)


推荐阅读