【问题标题】:AWS Lambda using a Container Image throwing a no space left on deviceAWS Lambda 使用容器映像在设备上抛出没有空间
【发布时间】:2021-04-21 12:51:30
【问题描述】:

我正在尝试确定是否存在需要解决的配置问题,或者我是否真的以某种方式最终使用了所有 10GB(尽管这似乎不太可能,因为图像为 849MB),但我得到的设备上没有剩余空间错误使用容器运行我的 lambda 时。有人知道为什么会这样吗? (我需要将东西转储到 tmp 文件夹吗?我正在尝试在这个特定的 lambda 中运行张量流项目,所以这可能是我需要调查的事情?)

【问题讨论】:

    标签: amazon-web-services aws-lambda containers


    【解决方案1】:

    来自the documentation

    容器映像必须能够在只读文件系统上运行。您的函数代码可以访问具有 512 MB 存储空间的可写 /tmp 目录。

    因此,如果您尝试在“当前”目录(通常为 /var/task)中写入文件,它将无法正常工作。

    有几种方法可以解决这个问题:

    1. 如果您的文件适合 512 MB,然后上传到某个地方,请将其写入 /tmp
    2. 使用内存数据结构(你没有提到你的语言,但是,例如,io.BytesIOio.StringIO 在 Python 中,或 java.io.ByteArrayOutputStream 在 Java 中)。您在问题中提到的“10 GB”是内存 (RAM),而不是磁盘。
    3. 如果您需要写入磁盘,并且需要超过 512 MB,请mount an EFS volume

    【讨论】:

    • 是的,我很快发现即使对于容器化的 lambda,512 限制仍然存在。找到了解决方法,基本上是把资源预加载到容器中。 EFS 听起来像是一个很好的解决方案,可能需要深入挖掘,但我最终可能会为这个应用程序走一条不同的路线......
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2021-03-23
    • 1970-01-01
    • 2015-10-27
    • 2021-01-07
    • 1970-01-01
    • 2020-12-16
    • 2020-03-09
    相关资源
    最近更新 更多