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

Azure ASEv2环境下配置Bitbucket为Web App部署源遇错误求助

排查对外阻断ASEv2中Web App配置Bitbucket部署源失败的问题

我之前帮不少用户排查过这类ASEv2环境下的部署源配置问题,你遇到的BadRequest+OAuthException+Bitbucket AddWebHook 400错误,大概率和ASEv2的网络限制、Bitbucket OAuth权限不足或者WebHook回调不可达有关,咱们一步步来拆解排查:

1. 先确认ASEv2能正常出站访问Bitbucket

因为你的ASEv2是对外阻断模式,默认会限制大部分出站流量,首先得打通到Bitbucket的通道:

  • 检查ASEv2关联的网络安全组(NSG):添加出站规则,允许访问api.bitbucket.org和bitbucket.org这两个域名(或者对应的IP段,Bitbucket官方会公布这些IP范围)
  • 要是你的ASEv2还搭配了Azure Firewall或者自定义防火墙,也得把这两个域名加入放行列表,确保Web App能正常和Bitbucket的API通信

2. 验证Bitbucket OAuth应用的权限配置

这个OAuthException基本都是因为权限不够导致的,你得去Bitbucket那边检查下:

  • 登录Bitbucket,进入个人设置或工作区设置,找到OAuth consumers
  • 找到Azure用来连接的那个consumer,确保开启了这些权限:
    • 仓库权限:repository:read和repository:write(部署源需要读写权限来创建WebHook)
    • WebHook权限:webhook:manage
  • 另外要确认consumer的回调URL是对的,格式一般是https://<你的WebApp名称>.azurewebsites.net/.auth/login/bitbucket/callback,别填错了

3. 解决WebHook回调的可达性问题

这是ASEv2内部环境最容易踩的坑:因为对外阻断,Bitbucket的服务器没法直接访问你的Web App来触发WebHook,自然会导致AddWebHook失败:

  • 如果你的ASEv2是**内部负载均衡(ILB)**类型,Web App没有公网IP,Bitbucket的WebHook请求根本穿不进来。这种情况可以试试这些方案:
    • 用Azure Front Door或者反向代理暴露Web App的回调端点,让Bitbucket能正常访问
    • 改用Azure DevOps管道中转:先让DevOps拉取Bitbucket的代码,再通过管道部署到ASEv2的Web App(前提是DevOps能访问你的ASEv2)
    • 退一步用手动部署或者本地Git同步的方式
  • 另外要确保你的Web App启用了HTTPS,Bitbucket的WebHook只支持HTTPS的回调地址

4. 检查Azure侧的部署源配置细节

有时候配置的小疏漏也会引发这个错误:

  • 登录Azure Portal,进入Web App的部署中心,重新尝试配置Bitbucket源:
    • 确认选的仓库、分支是正确的,且你有权限访问这个仓库
    • 私有仓库的URL格式别填错,要是工作区仓库,得确保你有该工作区的访问权限

5. 拉取详细日志定位具体原因

如果前面几步都没解决,就得看更详细的错误日志了:

  • 在Azure Portal的Web App里,进入日志->应用服务日志,开启详细部署日志
  • 重新触发配置操作,然后查看UpdateSiteSourceControl相关的日志,里面会有Bitbucket返回400的具体原因(比如是权限不足、回调地址无效还是其他问题)

内容的提问来源于stack exchange,提问作者Ziba Leah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:34:05