Azure Function App创建的文件在Kudu或控制台中不可见
问题原因及解答
为什么C:\local下的文件看不到?
- Azure Functions运行在沙箱化的实例环境中,
C:\local\LocalAppData、C:\local\Temp这类路径属于单个函数实例的本地临时存储,每个实例有独立的本地磁盘空间,这些存储和Kudu/控制台访问的不是同一个位置。 - Kudu和你使用的控制台访问的是
C:\home路径对应的持久化共享存储(挂载的是Azure存储账户里的文件共享),这个存储是跨所有函数实例共享的,而你在实例本地存储创建的文件只存在于当前运行的那个实例里,外部工具根本访问不到。 - 操作没抛异常是因为函数实例确实拥有本地存储的读写权限,文件创建操作本身是成功的,只是不在Kudu能访问的共享存储范围内。
改用C:\home\data会有同样问题吗?
不会。C:\home\data属于C:\home的子目录,同样挂载的是持久化共享存储,在这里创建的文件会和wwwroot里的文件一样,能立即被Kudu和控制台看到,而且所有函数实例都能访问这些文件,数据也会持久化保存(除非手动删除或存储账户出现异常)。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

