Azure DevOps流水线无法配置Webhook:容器注册表触发器设置失败求助
问题描述
启用Azure容器仓库持续部署触发器时,出现以下错误:
AzureContainerRepository
无法在所选Azure容器注册表上设置Webhook。触发器仅支持托管注册表,要么该注册表不是托管注册表,要么访问令牌权限不足。
内部异常信息:
{"error":{"code":"AuthenticationFailedMissingToken","message":"Authentication failed. The 'Authorization' header is missing the access token."}}
已确认信息:
- 服务连接拥有Contributor角色
- 这是第6个Webhook,此前配置均正常(未达到Webhook数量限制)
- 注册表为Standard层级
排查与解决建议
验证服务连接认证有效性
- 若使用服务主体认证,检查服务主体密钥是否过期,重新生成密钥并更新服务连接配置
- 若使用托管标识认证,确认托管标识已被授予ACR的
AcrWebhook Contributor角色(比Contributor更精细,专门针对Webhook操作)
确认ACR托管状态
- 在Azure门户的ACR概览页面,确认注册表类型为托管式Azure容器注册表(经典注册表已被淘汰,不支持此类触发器)
手动测试Webhook创建权限
- 用Azure CLI执行命令,验证当前身份能否创建Webhook(替换占位符):
根据命令报错信息,直接定位权限或认证问题az acr webhook create --name <webhook-name> --registry <acr-name> --uri <pipeline-trigger-uri> --actions push
- 用Azure CLI执行命令,验证当前身份能否创建Webhook(替换占位符):
检查自托管代理的认证上下文
- 若使用自托管代理,确认代理运行环境能正常获取Azure AD令牌,可尝试重启代理或重新配置代理的Azure认证
手动配置Webhook替代自动创建
- 在ACR中手动创建指向Azure Pipelines触发器的Webhook,然后在Pipeline设置中禁用自动创建Webhook选项,直接使用手动配置的Webhook触发部署
内容的提问来源于stack exchange,提问作者Maciek Psiuk
相关产品推荐
相关产品推荐

