Azure Function写文件的自定义文件夹发布后丢失如何解决?
Azure Function 发布覆盖自定义目录解决方案
文件夹被清除的核心原因:
C:\home\site\wwwroot是Azure Function的代码部署目录,每次发布操作会默认清空该目录下与发布包不匹配的所有内容,存放在代码目录下的自定义运行时数据会被直接覆盖。
方案1:使用官方推荐的持久化数据目录(最优选择)
- Azure App Service(含Function运行时)默认提供专门的持久化数据存储路径
C:\home\data,该路径不会被发布操作覆盖,默认拥有读写权限,支持多应用共享访问 - 你可以将CustomMsg文件夹迁移到
C:\home\data\CustomMsg路径下,仅需修改Function写入逻辑的对应路径即可,无需调整发布配置,也不会影响其他应用的读写操作
方案2:配置发布排除规则保留指定目录
如果你必须保留原路径的存储结构,可以通过配置发布规则跳过该目录的删除操作:
- 本地工具发布:在项目根目录创建
.deployment文件,添加以下配置:
[config] SCM_SKIP_DELETION_OF_FILES = Function1/CustomMsg/**
- 门户/CI/CD流水线发布:在Function应用的「配置」-「应用程序设置」中添加键为
SCM_SKIP_DELETION_OF_FILES,值为Function1/CustomMsg/**的配置项,保存后生效,后续发布时会跳过该目录下所有内容的删除逻辑
方案3:挂载Azure文件共享(备选)
如果需要跨多个Function/App Service共享文件存储,可以将Azure存储账户的文件共享挂载到Function的本地路径,挂载后的路径读写性能和本地磁盘一致,完全独立于代码发布流程,不会被发布操作覆盖。
内容的提问来源于stack exchange,提问作者Saira
相关产品推荐
相关产品推荐

