如何禁用Azure Functions因GitHub代码变更触发的自动部署
可行解决方案
1. 修改CI流水线的触发与部署逻辑
- 移除CI流水线中直接部署到Azure Functions的步骤:打开Azure DevOps的CI流水线编辑界面,找到所有涉及
AzureFunctionApp部署的任务并删除。让CI仅负责代码构建、打包(如生成zip包)并发布到Azure DevOps工件库(Artifacts),不执行任何部署操作。 - 保留CI的代码变更触发规则:维持GitHub代码变更自动触发CI构建的设置,确保代码变更仅触发构建流程。
2. 禁用Azure Functions内置的自动部署触发器
- 登录Azure Portal,找到目标Azure Functions应用。
- 在左侧菜单部署分类下选择部署中心,切换到触发器标签页。
- 找到关联的Azure DevOps流水线触发器,将其状态设为禁用,切断CI完成后自动部署到函数的通道。
3. 配置CD流水线为纯手动触发模式
- 打开Azure DevOps的CD发布流水线编辑界面,进入触发器设置项。
- 关闭持续部署触发器(即取消“当有新的工件可用时自动创建发布”的勾选)。
- 后续部署仅通过手动操作:在CD流水线界面点击创建发布,选择指定的CI构建工件执行部署流程。
4. 调整服务连接权限(补充方案)
- 如果CI流水线之前通过服务连接直接访问Azure Functions执行部署,可调整该服务连接的权限:将其对Azure Functions的角色从
Contributor改为Reader,限制CI对函数的部署操作权限。
内容的提问来源于stack exchange,提问作者aanya sharma
相关产品推荐
相关产品推荐

