Azure DevOps多环境变量组中同名变量在模板任务中无法正确解析的问题求助
Azure DevOps多环境变量组中同名变量在模板任务中无法正确解析的问题求助
我遇到了一个难题,怎么都找不到解决办法。我给每个环境都建了对应的变量组:
- My_Var_Group_Prod
- My_Var_Group_Dev
每个变量组里都有一个名为**"Service_Connection"**的变量,它对应Azure账号的服务连接。因为每个环境可能在不同的订阅里,所以这个变量的值每个环境都不一样。
我的YAML流水线用模板来部署应用到Azure,主流水线里是这么引用模板的:
- stage: Dev variables: - group: My_Var_Group_Dev jobs: - template: templates/deploy_API.yml
在deploy_API.yml模板里,有这么一个任务:
- task: AzureWebApp@1 displayName: 'Deploy API' inputs: azureSubscription:'$(Service_Connection)' appType: 'webAppLinux' appName: 'my-api-web-app' package: '$(API_DIRECTORY)/API.zip'
问题在于,AzureWebApp任务里的azureSubscription参数好像是在"构建"阶段就确定的,我连流水线都跑不起来,它直接报错说需要这个值。
我试过这么修复:建了一个全局变量组,里面定义了SERVICE_CONNECTION的默认值,然后在主YAML里引用这个全局组。但这样的话,流水线会用全局组里的值,而不是My_Var_Group_Dev里的对应值——哪怕我在任务前加echo能打印出正确的环境变量值也没用。
我还试过把SERVICE_CONNECTION作为流水线参数传进去,这方法是能用,但我希望这个值存在变量组里,所以这个方案也不行。
目前唯一能跑通的办法是用Bash任务手动做部署,通过应用注册的信息来认证。但这完全不DevOps,而且我其他地方也需要用这个模式,所以必须找个合适的解决办法。
有没有人遇到过同样的问题?求支招!谢谢大家!
备注:内容来源于stack exchange,提问作者user9217079
相关产品推荐
相关产品推荐

