AWS Lambda tmp 磁盘限制与 ffmpeg
AWS Lambda tmp disk limit with ffmpeg
我正在使用 AWS Lambda 使用 ffmpeg 渲染视频。下载外部剪辑,合并这些剪辑,然后将结果上传到 S3 是一个基本功能。
此功能需要能够快速扩展,因为我需要在短时间内生成大量视频。
问题是我达到了 /tmp
512MB 的磁盘限制,因为不同的请求重用了相同的 lambda 环境。我增加了内存限制以暂时解决问题,但感觉无法扩展。
我已经研究过 EFS,但使用 VPC 和 NAT 来访问互联网的要求听起来对我的简单需求来说确实很繁重。
有没有办法直接在S3中输出ffmpeg的结果(不需要临时文件夹)?或者如果内存即将满,则可能强制重新生成一个干净的 lambda 环境?
见AWS Lambda Now Supports Up to 10 GB Ephemeral Storage:
AWS Lambda now allows you to configure ephemeral storage (/tmp) between 512 MB and 10,240 MB. You can now control the amount of ephemeral storage a function gets for reading or writing data, allowing you to use AWS Lambda for ETL jobs, ML inference, or other data-intensive workloads.
请注意,每次调用您的 Lambda 函数都可以安全地删除存在于 /tmp
中的文件 - 您永远不会有两个使用相同运行时环境的并发 Lambda 调用。那里存在的任何文件都是先前调用 Lambda 函数(现已完成)遗留下来的。如果不需要将文件从一个 Lambda 调用共享到下一个,那么您的 Lambda 函数可以在退出前删除这些文件,以确保下一次调用有一个干净的 /tmp
文件夹。
我正在使用 AWS Lambda 使用 ffmpeg 渲染视频。下载外部剪辑,合并这些剪辑,然后将结果上传到 S3 是一个基本功能。
此功能需要能够快速扩展,因为我需要在短时间内生成大量视频。
问题是我达到了 /tmp
512MB 的磁盘限制,因为不同的请求重用了相同的 lambda 环境。我增加了内存限制以暂时解决问题,但感觉无法扩展。
我已经研究过 EFS,但使用 VPC 和 NAT 来访问互联网的要求听起来对我的简单需求来说确实很繁重。
有没有办法直接在S3中输出ffmpeg的结果(不需要临时文件夹)?或者如果内存即将满,则可能强制重新生成一个干净的 lambda 环境?
见AWS Lambda Now Supports Up to 10 GB Ephemeral Storage:
AWS Lambda now allows you to configure ephemeral storage (/tmp) between 512 MB and 10,240 MB. You can now control the amount of ephemeral storage a function gets for reading or writing data, allowing you to use AWS Lambda for ETL jobs, ML inference, or other data-intensive workloads.
请注意,每次调用您的 Lambda 函数都可以安全地删除存在于 /tmp
中的文件 - 您永远不会有两个使用相同运行时环境的并发 Lambda 调用。那里存在的任何文件都是先前调用 Lambda 函数(现已完成)遗留下来的。如果不需要将文件从一个 Lambda 调用共享到下一个,那么您的 Lambda 函数可以在退出前删除这些文件,以确保下一次调用有一个干净的 /tmp
文件夹。