【发布时间】:2018-12-01 14:43:23
【问题描述】:
您知道是否可以在 AWS S3 上安装文件系统以增加 AWS Lambda 存储?
【问题讨论】:
-
Stack Overflow 仅用于编程问题
标签: amazon-web-services amazon-s3 filesystems aws-lambda
您知道是否可以在 AWS S3 上安装文件系统以增加 AWS Lambda 存储?
【问题讨论】:
标签: amazon-web-services amazon-s3 filesystems aws-lambda
您不能将 Amazon S3 挂载为文件系统以与 AWS Lambda 一起使用。
AWS Lambda 函数设计为短运行脚本,可响应您环境中的事件(例如,进入 Kinesis 流的数据,在 Amazon S3 中创建的文件)。它们通常只运行几秒钟。
虽然您尚未描述您的用例,但需要大量使用文件系统的东西通常不是 Lambda 函数的良好用途。
当然,您可以通过来自 Lambda 函数的 SDK 调用在 Amazon S3 中检索和创建对象。这是从 Lambda 加载/存储数据的一种非常快速且高效的方式。
【讨论】:
s3fs 来“挂载”S3。我通常会看到不使用s3fs 的建议,因为它可能不如直接调用 S3 API 可靠。令人惊讶的是,他们在文档中添加了 s3fs 示例!
lambda 提供的存储空间实际上是临时磁盘空间,只能在 lambda 执行期间用于临时存储。它被限制为 512 Mb 并且不能增加。
如果您的用例需要更多 lambda 空间,而您可以直接从 s3 存储和检索对象。它非常快速和高效。此外,s3 不提供文件系统,它只是基于对象的存储,每个文件夹、子文件夹和每个文件都代表 s3 中的一个 object,这实际上看起来像一个层次结构,但实际上它不是.
虽然 lambda 中的临时磁盘空间具有分层文件结构
【讨论】:
/tmp 中,它可能会被填满并导致所有后续功能失败,直到 AWS 启动一个新实例。
在最近对 AWS 进行功能更新后,您现在可以将 EFS 挂载到您的 Lambda 文件系统中: https://aws.amazon.com/blogs/compute/using-amazon-efs-for-aws-lambda-in-your-serverless-applications/
【讨论】:
解决https://stackoverflow.com/a/50982764/1259398中的cmets:
您似乎混淆了模拟文件系统的 Python 库 s3fs,但它是 Boto 之上的库,与 s3fs-fuse 模块在指定文件夹下“挂载”一个 S3 存储桶,这变得可供整个操作系统就像是一个常规的分层 FS。
参考资料:
【讨论】: