Выражение переменной группы yaml в Azure Devops Pipeline - PullRequest
1 голос
/ 11 марта 2020

У меня проблемы с выражением переменной в задаче AzureKeyVault. И выражения значений azureSubscription и KeyVaultName не разрешаются, чтобы иметь переменные в переменной Group. Это работает, если я определяю эти переменные вручную любым способом в yaml. Либо в azure -pipelines.yml, либо в шаблоне variable_test.yml, который я импортирую в начале этапа.

Я прочитал в документации, что переменные из группы переменных должны использоваться следующим образом: (var), но затем выдает ошибку, говоря, что подписка типа '$ (var)' не существует.

Шаблон: azure -pipelines.yml:

- stage: Test

  variables:
  - template: variables_Test.yml  # Template reference
  - group: testVariableGroup

  dependsOn: []

  jobs:

  - job: Test

    steps:

    - task: AzureKeyVault@1
      inputs:
        azureSubscription: ${{ variables.spn_kv_app }}
        KeyVaultName: ${{ variables.keyVaultName }}
        SecretsFilter: '*'

В журналах от этапа я вижу, как переменные устанавливаются из группы переменных:

Job preparation parameters
Variables:
  keyVaultName: $[ variablegroups.testVariableGroup.keyVaultName ]
  resourceGroupName: $[ variablegroups.testVariableGroup.resourceGroupName ]
  spn_cd_app: $[ variablegroups.testVariableGroup.spn_cd_app ]
  spn_kv_app: $[ variablegroups.testVariableGroup.spn_kv_app ]
  storageAccountName: $[ variablegroups.testVariableGroup.storageAccountName ]

Важно отметить, что для этих переменных не заданы секреты в группе переменных.

PS. Для всех, кто заинтересован. Я создал билеты:

https://github.com/MicrosoftDocs/vsts-docs/issues/7586

https://developercommunity.visualstudio.com/content/problem/949342/azuresubscription-serviceconnection.html

Если что-нибудь будет восстановлено, я отправлю ответ .

1 Ответ

0 голосов
/ 12 марта 2020

Выражение переменной группы yaml в Azure Devops Pipeline

Должно работать с $(var). Попробуйте проверить следующий тестовый файл yaml:

Основной Yaml:

trigger:
- master

variables:
- group: Test2

pool:
  vmImage: 'windows-latest'

stages:

- template: azure-pipelines.yml

Шаблон azure-pipelines.yml:

stages:
- stage: Test

  dependsOn: []

  jobs:

  - job: Test

    steps:

    - task: AzureKeyVault@1
      inputs:
        azureSubscription: $(spn_kv_app)
        KeyVaultName: $(keyVaultName)
        SecretsFilter: '*'

И моя группа переменных:

enter image description here

Как результат теста:

enter image description here

Итак, со мной все работает отлично. Пожалуйста, проверьте название группы переменных и название переменных.

Надеюсь, это поможет.

...