AWS Lambda设备上没有剩余空间错误

时间:2018-01-19 18:23:42

标签: amazon-web-services lambda delete-file temp

我使用API​​网关调用lambda函数从s3导入mpeg文件(10 mb)并保存在lambda的/ tmp文件夹中,lambda将其上传到外部API(youtube等) 最近,对lambda的API网关调用间歇性地失败并出现错误

[Errno 28] No space left on device

以下是我下载文件的方式

urllib.urlretrieve (s3_mpeg_url, '/tmp/{}'.format(mpeg_filename))

如果我创建同一个lambda函数的新版本并分配给指向的别名API网关,它会开始工作,并且在某些时候它会再次出现同样的错误

当我从lambda控制台测试lambda函数时,它始终有效

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你的lambda函数has approximately 500MB of disk space available on /tmp。但是,出于性能原因,AWS Lambda可能会在后续调用中保留并重用您的函数实例。您可以在此处选择两种方式:

  1. 如果您的功能完全无状态(即在将其上传到外部API后您不需要mpeg文件),请在上传后将其从/tmp文件夹中删除。 / LI>
  2. 如果您需要保留数据,请考虑在处理后将其存储在其他媒体上,例如S3或DynamoDB。