Azure Functions应用代码下载失败及只读模式问题求助
解决Azure Functions只读模式与代码下载问题
我明白你现在遇到的困境——函数应用处于只读模式,尝试修改配置没效果,下载内容又拿不到实际代码,别着急,我来一步步帮你解决:
为什么下载不到代码?
当你的函数应用设置了WEBSITE_RUN_FROM_PACKAGE时,Azure是直接从部署的zip包中加载运行,而不是从文件系统的可编辑代码文件运行。这时候通过“Download app content”下载的只是部署后的运行时配置文件(比如functions.json),而不是原始的源代码文件(比如.cs、.py、.js这类)。
如何获取完整代码?
你可以根据自己的部署方式选择以下方法:
- 如果用CI/CD工具部署(GitHub Actions、Azure DevOps等):直接从你的代码仓库拉取代码到本地即可,这是最直接的方式。
- 如果是手动上传zip包部署:找到当初上传的原始zip包,解压后就能得到完整代码。如果原始包丢失了,试试下面两种方法:
- 使用Azure CLI下载部署包
打开终端运行以下命令,把当前运行的完整包下载到本地:
解压这个zip文件,就能看到所有代码文件了。az functionapp deployment source config-zip -g <你的资源组名称> -n <函数应用名称> --src <本地要保存的zip路径,比如./function-app-code.zip> - 通过Kudu控制台下载
- 打开函数应用的Kudu页面:
https://<你的函数应用名称>.scm.azurewebsites.net - 左侧菜单选择“Debug console” → “CMD”或“PowerShell”
- 进入
site/wwwroot目录,这里就是包解压后的完整内容。你可以选中所有文件,点击顶部的“Download”按钮打包下载,或者单独下载需要的文件。
- 打开函数应用的Kudu页面:
- 使用Azure CLI下载部署包
修改代码后重新部署的正确步骤
拿到代码并修改完成后,按以下步骤重新部署:
- 将修改后的代码打包成zip文件注意:确保所有代码文件直接在zip根目录,不要嵌套在额外的文件夹里。
- 用Azure CLI上传并更新函数应用:
这个命令会自动上传zip包,同时正确配置az functionapp deployment source config-zip -g <你的资源组名称> -n <函数应用名称> --src <你修改后的zip文件路径>WEBSITE_RUN_FROM_PACKAGE设置,部署完成后函数应用就会运行更新后的代码。
关于只读模式的补充说明
- 当
WEBSITE_RUN_FROM_PACKAGE设置为1或者一个Blob存储URL时,函数应用进入只读模式是正常行为——因为它从包运行,无法直接修改文件系统内容,必须通过重新部署包来更新代码。 - 之前手动添加配置没效果,大概率是因为设置值不正确:如果是手动上传zip,不要手动添加
WEBSITE_RUN_FROM_PACKAGE,直接用上面的CLI命令部署即可;如果用Blob存储URL,要确保URL是可公开访问的,或者带有有效的SAS令牌。
内容的提问来源于stack exchange,提问作者user12463572
相关产品推荐
相关产品推荐

