【发布时间】:2017-05-23 23:35:43
【问题描述】:
是否可以向 AWS Lambda 添加临时存储空间,以便在将文件上传到 S3 之前写入大于 500 MB 的文件? NFS/EFS 可以吗?
谢谢。
【问题讨论】:
-
目前看来,不可能。查看 AWS 论坛功能请求forums.aws.amazon.com/thread.jspa?threadID=179785
标签: amazon-web-services aws-lambda
是否可以向 AWS Lambda 添加临时存储空间,以便在将文件上传到 S3 之前写入大于 500 MB 的文件? NFS/EFS 可以吗?
谢谢。
【问题讨论】:
标签: amazon-web-services aws-lambda
不。你不应该依赖它。 EFS 也不是一个选项。
此外,下载超过 500MB 的文件所需的时间取决于网络状况,您无法事先预测该功能需要多长时间才能完成。
您的 lambda 函数必须在 300 秒内完成执行。
此外,如果调用此 lambda 函数的多个实例,如果所有请求都将处理大于 500MB 的文件,您将始终受到存储空间的限制。
你最好把这个功能移到 lambda 之外。
【讨论】:
AWS 最近增加了对将高达 10GB 的临时存储附加到 lambda 的支持。临时存储不在调用之间共享,仅当大小超过 512 MB 时才收费。
可以使用以下命令通过 aws-cli 启用临时存储
$ aws lambda update-function-configuration --function-name yourLambdaFunction \
--ephemeral-storage '{"Size": 10240}'
如果您使用 sam-cli 管理您的 lambda,可以在 template.yml 文件中配置临时存储,如下所示
yourLambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambda_test/
Handler: app.lambda_handler
Runtime: python3.7
MemorySize: 512
EphemeralStorage:
Size: 5120
Timeout: 900
大小应以 MB 为单位指定,并且不应超过 10GB 的最大限制。此外,sam-cli 版本 1.43.0 或更高版本支持此选项。对于低于该版本的版本,这将在构建过程中出现错误。
【讨论】: