Azure DevOps CD流水线触发生产环境时报受保护资源未评估错误
Azure DevOps CD流水线生产环境部署错误诊断与解决
这个错误的核心是:生产环境使用的服务连接配置了保护检查,但流水线尝试调用该服务连接时,这些检查未被执行或未通过。以下是具体的诊断和解决步骤:
1. 检查服务连接的保护规则
- 进入项目的「项目设置」→「服务连接」,找到报错里的
[service endpoint name]服务连接 - 点击服务连接右侧的「...」→「编辑」,切换到「检查」标签页
- 确认是否配置了审批、分支限制、权限校验等检查规则——这些规则必须在流水线使用该服务连接前完成校验
2. 确认流水线YAML的环境关联
- 生产环境的部署Job必须明确关联到Azure DevOps中配置了审批/检查的环境,不能直接单独引用服务连接。正确的YAML示例:
jobs: - deployment: DeployToProduction displayName: 部署到生产环境 environment: Production # 这里要对应你配置了检查的环境名称 strategy: runOnce: deploy: steps: - task: AzureResourceManagerTemplateDeployment@3 inputs: azureResourceManagerConnection: '[service endpoint name]' # 其他部署配置
- 如果之前是直接在步骤里调用服务连接,必须修改为通过
environment字段关联环境,因为服务连接的检查规则需要绑定到环境才能触发执行
3. 验证检查规则的触发条件
- 查看服务连接的检查规则,确认触发条件(比如仅允许main分支触发、特定用户组可审批)是否符合当前流水线的触发场景
- 若触发分支、发起用户不符合规则,检查不会启动,直接抛出该错误
4. 检查流水线的权限配置
- 打开流水线的编辑页面,点击右上角「...」→「安全」
- 确保流水线拥有目标环境的部署权限和服务连接的使用权限,权限不足也会导致检查无法正常执行
5. 重新触发并校验检查状态
- 修正配置后重新触发生产部署,在流水线运行详情页查看「检查」阶段的状态,确认所有配置的检查(比如审批)已完成并通过
内容的提问来源于stack exchange,提问作者Łukasz Komosa
相关产品推荐
相关产品推荐

