[英]using aws lambda /tmp - python
for <some-condition>:
g.to_csv(f'/tmp/{k}.csv')
此示例使用 /tmp/。 当 /tmp/ 未在 g.to_csv(f'/tmp/{k}.csv') 中使用时,它会从这里给出只读文件系统错误https://stackoverflow.com/a/42002539/13016237 ,所以问题是如果 AWS lambda 自行清除 /tmp/ 还是手动完成。 在 boto3 的范围内是否有任何解决方法。 谢谢!
/tmp
,顾名思义,只是一个临时存储。 不应依赖它进行任何长期数据存储。 只要lambda 执行上下文保持活动状态, /tmp
的文件就会一直存在。 时间没有定义并且各不相同。
为了克服大小限制 (512 MB) 并确保长期数据存储,我们采用了两种解决方案:
EFS 的使用更容易(但并不便宜),因为这将为您的函数提供一个常规文件系统,您可以直接写入和读取。 您还可以跨多个 lambda 函数、实例、容器等重复使用相同的文件系统。
S3 会更便宜,但您需要做一些额外的工作才能在 lambda 中无缝使用。 Pandas 确实支持 S3 ,但要实现无缝集成,您必须在部署包(或层)中包含S3FS (如果尚不存在)。 S3 也可以从不同的函数、实例和容器访问。
g.to_csv('s3://my_bucket/my_data.csv')
应该工作,如果你将打包s3fs您的拉姆达。
另一种选择是将 csv 保存到内存中并使用 boto3 在 s3 中创建一个对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.