You need to enable JavaScript to run this app. Linux Python Azure Function主机增量添加函数 避免覆盖已部署函数的方法
优惠活动
大模型
产品
解决方案
定价
更多

Linux Python Azure Function主机增量添加函数 避免覆盖已部署函数的方法

Python Linux Azure Functions 多团队共用主机的增量部署最简方案

核心实现思路

大家常用的/api/zipdeploy端点默认是全量清空site/wwwroot目录再解压部署包,天然会把其他团队的内容冲掉。不需要拆分多套Function应用、不需要额外挂载共享存储,只要调整部署的请求端点和打包结构,就能实现不覆盖已有内容的增量更新:

  • 放弃默认全量替换的zipdeploy端点,改用Kudu文件服务的增量解压端点/api/zip/site/wwwroot/,通过PUT方法提交部署压缩包
  • 这个端点的内置逻辑是把压缩包内的文件合并写入指定的wwwroot路径,不会删除路径下已经存在的、不在本次部署包里的文件,刚好匹配多团队共用一台主机的需求

之前操作没生效的常见原因

  • 之前试Kudu的zip端点没发布成功,基本是两个常见问题:一是部署包多套了一层外层目录,比如本来应该直接在压缩包里放func1/、func2/文件夹,结果多了一层build/output/的嵌套,导致解压后路径不对,函数运行时扫不到;二是请求路径没精准指到site/wwwroot/,内容被解压到了其他运行时不会扫描的目录
  • 用FTP上去看不到已经部署的文件是Linux版Azure Functions的正常现象:Linux函数跑在临时容器里,默认FTP通道连的是容器的临时文件系统,不是运行时实际加载的持久化存储盘,所以FTP里看到空目录很正常,别拿FTP当部署渠道

落地要注意的细节

  • 第一次部署的时候,把所有团队统一的host.json、公共依赖配置放到wwwroot根目录就行,后面各团队的部署包只打自己负责的独立函数文件夹,别反复打包全局配置文件,免得把统一的配置覆盖掉
  • 所有团队的函数名要全局唯一,别出现不同团队的函数文件夹重名的情况,不然会互相覆盖
  • 部署完不用手动重启应用,Azure Functions自带的文件检测机制会自动扫到新的函数完成加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 15:54:07