我正在为Azure devops管道使用Yaml。为此,我使用了一种分层样式。
我有一个顶级的yaml: feature.yaml,它的结构如下:
trigger:
...
pool:
vmImage: ...
variables:
group: ...
stages:
- template: deploy.yaml
parameters:
subName: $(subscription) #This should be taken from Variable group我的deploy.yaml是:
stages:
- stage: deploy
jobs:
- job: deploy
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: $(paramaters.subName) #This should be resolved from parameter passed form feature.yaml
KeyVaultName: ...
SecretsFilter: '*'
RunAsPreJob: true然而,每当我从Azure DevOps运行这个命令时,我都会收到这个错误:
There was a resource authorization issue: "The pipeline is not valid. Job deploy: Step AzureKeyVault input ConnectedServiceName references service connection $(paramaters.subName) which could not be found. The service connection does not exist or has not been authorized for use. For authorization details, refer to https://aka.ms/yamlauthz."管道似乎无法从变量组中解析azureSubscription名称的值。
有什么建议吗?
发布于 2020-11-18 23:24:36
我发现,在最初解析YAML时,它希望变量group在作用域中。我需要将我的变量组移到YAML文件的顶部,然后它找到了azure订阅变量。这可不是我想要的。
发布于 2020-07-13 20:13:36
发布于 2020-07-14 15:58:00
对于那些正在寻找解决方案的人,
下面是您需要做的:在Top-level feature.yaml中,添加所需的变量组名称,并传入具有azure订阅名称的模板中的参数:
variables:
- group: xxx
- template: deploy.yaml
parameters:
subName: $(_subscriptionName)并在模板deploy.yaml中使用该参数:
- task: AzureKeyVault@1
inputs:
azureSubscription: ${{ parameters.subName}}
keyVaultName: xxx
secretsFilter: '*'这是一个目前已知的问题,我们不能使用变量组的变量直接输入到AzureKeyVault任务的每个this线程的azureSubscription。
这项工作应该可以很好地工作!
https://stackoverflow.com/questions/62875259
复制相似问题