使用 ECS Fargate 时如何管理 `tmp` 文件夹?

How is `tmp` folder managed when using ECS Fargate?

我目前正在 运行 生产中使用 AWS Fargate 的一些容器。我是 运行 一个不时将一些文件填充到 /tmp 文件夹的应用程序。

也就是说,我想知道这个 /tmp 文件夹发生了什么。这是由 Fargate 管理的东西(例如 ECS Container Agent 管理的东西)还是我需要自己管理的东西(例如使用 cronjob 清除那里的文件)?

注意 1: 一种处理方法是使用 s3 来处理这种行为,但是,问题是要知道如何 Fargate 关于 /tmp 文件夹的行为。

注意2:我不需要/tmp文件夹中的文件,它们恰好出现在那里,我想知道是否需要删除他们或者如果 ECS 会为我做那件事。

我在文档中找不到任何相关信息。如果有人在文档中指出该主题,我很乐意接受答案。

如果我没有正确理解你的问题,那么你似乎想要更精确地控制容器内的临时存储。

我认为 ECS 或 Fagate 对容器内 FS 上的 /tmp 文件夹没有任何特殊之处。

但是,docker 确实有一个 tempfs 挂载的概念。这允许您指定一个路径,避免在容器主机上存储数据。

https://docs.docker.com/storage/tmpfs/

ECS 和 Fargate 最近添加了对 tmpfs 标志的支持:

https://aws.amazon.com/about-aws/whats-new/2018/03/amazon-ecs-adds-support-for-shm-size-and-tmpfs-parameters/

如果我理解正确,在您的 Fargate 任务结束其 运行 后,所有存储空间都会消失。

根据 aws documentation,Fargate 任务在配置时会收到一些存储,但它是临时存储。

因此,除非您使用永久 运行 任务,否则您不需要处理临时文件。它们将随存储一起消失。

希望对您有所帮助。