You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure函数停止后/tmp目录文件是否自动删除及相关疑问

Azure Functions 消费计划(Linux)下/tmp目录常见疑问解答

函数停止后,/tmp文件会自动删除吗?

不会在函数停止后立即自动删除。/tmp文件的清理完全取决于宿主实例的生命周期:

  • 只要实例处于活跃状态(正在运行函数或等待新调用),/tmp内的文件会一直保留;
  • 只有当Azure后台回收该宿主实例(比如长时间无调用触发闲置回收、资源紧张时分配给其他需求),整个实例的本地存储才会被销毁,包括/tmp里的所有文件。

未手动删除/tmp文件的安全隐患

先明确核心隔离逻辑:Linux消费计划下,不同租户的Function App宿主实例是完全隔离的,其他租户的函数绝对访问不到你的实例的/tmp目录。但仍有以下风险:

  • 同App内的其他函数:同一Function App下的多个函数会共享同一个实例的资源,包括/tmp目录。如果文件包含敏感数据(如密钥、用户隐私信息),可能被同App内的其他函数读取;
  • 实例复用导致数据混淆:如果你的函数再次被分配到之前用过的实例,旧的/tmp文件会被当前调用的函数读取到,可能引发业务逻辑错误(比如使用旧数据);
  • 存储配额耗尽:Linux消费计划下/tmp目录的配额是5GB,大量未清理的文件堆积会触发存储不足错误,导致函数运行失败。

为什么测试时文件多次运行后仍存在?

你看到的文章描述的是不能依赖本地磁盘做持久化存储,而非“每次调用后都会删除文件”。差异的核心原因是:

  • 消费计划的实例是按需复用的:短时间内多次调用函数,Azure会优先复用已有的活跃实例,不会每次都创建新实例,所以/tmp文件会保留;
  • 实例回收是被动且无规律的:实例只有在满足回收条件时才会被销毁,这个时机由Azure后台控制,你测试时可能刚好没碰到实例回收的场景;
  • 官方强调“不依赖本地磁盘”,是因为你无法控制实例的生命周期,文件随时可能被清除,绝对不能把/tmp用于存储需要长期保留或关键业务数据。

内容的提问来源于stack exchange,提问作者IDrumsey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:06:32