You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Azure DevOps部署带私有端点的App Function报403错误如何解决

Error: Failed to fetch Kudu App Settings. Error: Ip Forbidden (CODE: 403)

报错触发原因

该报错本质是Azure Function的Kudu管理站点(负责部署、配置拉取等运维操作)拒绝了Azure DevOps流水线的访问请求,核心触发原因包括:

  • 开启私有端点后,Azure Function默认封堵公网访问,Kudu站点默认继承Function的网络访问限制,而Azure DevOps默认走公网请求Kudu,IP不在允许范围内被直接拦截
  • 若单独配置了Kudu站点的访问限制规则,DevOps部署代理的IP未被加入白名单
  • 使用微软托管的DevOps代理时,其IP为动态分配,之前配置的白名单可能已过期失效
  • 私有端点对应的DNS解析配置错误,即便是和Function同VNet的代理,也会将Kudu域名解析到公网IP,触发公网访问拦截
排查与解决方法

场景1:使用微软托管的DevOps代理

  • 临时测试方案:获取微软托管代理当前的IP段,添加到Function以及Kudu站点的IP白名单。注意托管代理IP每周更新,该方案不适合生产环境使用
  • 生产级方案1:改用自托管DevOps代理,将代理部署在和Function私有端点同一VNet内,确保代理可直接解析到Function私有端点的内网IP,无需走公网访问
  • 生产级方案2:配置Azure虚拟网络服务连接,打通DevOps到Function所在VNet的内部访问链路

场景2:使用自托管DevOps代理

  • 首先排查网络连通性:登录代理机器执行nslookup <你的Function名称>.scm.azurewebsites.net,确认返回IP为Function私有端点的内网IP,而非公网IP。如果返回公网IP,需要修正代理所在VNet的DNS配置,关联对应Azure私有DNS区域,确保scm后缀的Kudu域名可正确解析到内网IP
  • 检查Function访问限制配置:确认Kudu站点未单独设置拦截规则,或已将自托管代理的内网IP段加入Kudu的允许列表
  • 检查私有端点配置:确认Function的私有端点已勾选scm作为目标子资源,未勾选的话私有端点不会覆盖Kudu站点的访问规则,公网拦截依然生效

验证步骤

配置完成后可在DevOps流水线新增临时步骤,执行curl -v https://<你的Function名称>.scm.azurewebsites.net/api/settings,返回200状态码即代表Kudu访问正常,可重新运行发布流水线。

内容的提问来源于stack exchange,提问作者Ranjit Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:06:07