繁体   English   中英

使用 aws lambda /tmp - python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM