AWS Lambda with Node - 将文件保存到 Lambda 的文件系统中

Dav*_*aiz 2 fs amazon-web-services node.js aws-lambda

我需要将从 S3 获取的文件保存到 Lambda 的文件系统中,我想知道是否可以简单地使用fs.writeFileSync?

或者我是否仍然必须使用context此处描述的功能: How to Write and Read files to Lambda-AWS with Node.js

(试图找到更新的例子,但找不到)。

推荐的方法是什么?

请指教。

jar*_*mod 6

是的,您可以使用典型的 fs 函数从本地磁盘读取/写入,但请注意,写入仅限于目录/tmp,并且该位置中 Lambda 函数可用的默认最大磁盘空间为 512 MB。另请注意,写入其中的文件可能会持续到下一次(热)Lambda 调用。

如果您只想将对象从 S3 下载到本地磁盘(假设它适合可用磁盘空间),那么您可以结合 AWS SDK 方法和 Node.js 流式传输将内容流式传输到磁盘

另外,值得注意的是,根据您的应用程序,您可能能够通过流处理 RAM 中的整个 S3 对象,而无需实际保留到磁盘。如果您的对象大小超过 512MB,这会很有帮助。

更新:自 2022 年 3 月起,您现在可以使用更多临时存储/tmp(最多 10 GB)配置 Lambda 函数。您将获得 Lambda 函数调用中包含的 512 MB 存储空间,并需要为超过 512 MB 的额外配置存储付费。

如果您需要保留非常大的文件,请考虑使用弹性文件系统