我正在Azure DevOps中构建多阶段Azure管道以构建和发布我的产品。
我想在此管道中使用变量组,以便可以将不同的配置值替换为不同的部署环境。
我无法授权管道使用我的变量组。 当我手动运行构建时,在摘要页面上会看到一条消息,告诉我变量组未被授权:
Azure DevOps documentation说,这是可以预期的:
当您对YAML文件进行更改并添加其他资源(如上文所述,假设未授权在所有管道中使用这些资源)时,构建将失败,并出现类似于以下内容的资源授权错误:找不到名称为{NAME}的{RESOURCE}。 {RESOURCE}不存在或未被授权使用。
在这种情况下,在“摘要”页面上,您将看到一个选项,用于授权失败的构建中的资源。如果您是资源的“用户”角色的成员,则可以选择此选项。资源获得授权后,您可以开始新的构建。
我是变量组的User角色的成员,并且看到此消息,但是没有授权选项。还有什么我需要做的吗?还是有另一种方法可以授权特定管道使用变量组?
答案 0 :(得分:4)
仅在“工作”级别导入变量组时,才可以访问它们。
我已经测试并尝试重现您的问题。为了解决这个问题,您需要在“作业”下添加变量组。
这是重现和解决问题的方法:
首先,我通过将变量组添加到阶段(实际上与职位处于同一级别),使用以下yaml
脚本进行了测试:
stages:
- stage: build
variables:
- group: 789
jobs:
- job: run_build
pool:
vmImage: 'Ubuntu 16.04'
steps:
- script: echo Build
使用此配置,我无法使用变量组。我和你有同样的问题:
然后我将变量组移到yaml
文件的 job 部分:
stages:
- stage: build
jobs:
- job: run_build
pool:
vmImage: 'Ubuntu 16.04'
steps:
- script: echo Build
variables:
- group: 789
使用修改后的配置,我能够查看并使用错误消息中的授权资源选项:
答案 1 :(得分:3)
@hey提出的提供的解决方案对我不起作用,因为我必须使用部署作业。我发现了一种解决该错误的方法:
答案 2 :(得分:0)
我也遇到这个问题,但这是因为当我在“管道”>“库”下创建变量组时,Azure Portal中的名称与yml文件中的名称不匹配。