【问题标题】:Work around for AWS Lambda 500MB /tmp storage limit解决 AWS Lambda 500MB /tmp 存储限制
【发布时间】:2017-05-23 23:35:43
【问题描述】:

是否可以向 AWS Lambda 添加临时存储空间,以便在将文件上传到 S3 之前写入大于 500 MB 的文件? NFS/EFS 可以吗?

谢谢。

【问题讨论】:

标签: amazon-web-services aws-lambda


【解决方案1】:

不。你不应该依赖它。 EFS 也不是一个选项。

此外,下载超过 500MB 的文件所需的时间取决于网络状况,您无法事先预测该功能需要多长时间才能完成。

您的 lambda 函数必须在 300 秒内完成执行。

此外,如果调用此 lambda 函数的多个实例,如果所有请求都将处理大于 500MB 的文件,您将始终受到存储空间的限制。

你最好把这个功能移到 lambda 之外。

【讨论】:

    【解决方案2】:

    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 或更高版本支持此选项。对于低于该版本的版本,这将在构建过程中出现错误。

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 2017-10-21
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2017-03-09
      • 1970-01-01
      相关资源
      最近更新 更多