Как я могу передать значение одной из групповых переменных в качестве параметра шаблона?

#azure-devops #azure-pipelines #azure-pipelines-yaml

Вопрос:

У меня есть трубопровод yaml, который ссылается на некоторые шаблоны. У меня есть группа переменных, связанная с этим основным файлом yaml, и я хочу передать одну из ее переменных в шаблон.

Это просто, когда я хочу «просто использовать это», как показано ниже:

пример:

 stages:  - stage: Deployment  variables:  - group: My_group_variables  jobs:  - template: /templates/jobs/myJobTemplate.yml  parameters:  someParameter: $(variable_from_my_variable_group)  

myJobTemplate.yml:

 parameters:  - name: someParameter  default: ''  jobs:  - job: Myjob  steps:  - task: Bash@3  inputs:  targetType: 'inline'  script: cat ${{ parameters.someParameter}}  

Он не работает, когда я хочу проверить параметры, такие как:

 parameters:  - name: environmentName  type: string  values:  - Development  - Test  - UAT  - Production  

Или когда я хочу использовать имя «подключение к службе» в качестве переменной.

 ...  - task: KubernetesManifest@0  displayName: Deploy to Kubernetes cluster  inputs:  action: 'deploy'  kubernetesServiceConnection: ${{ parameters.kubernetesServiceConnection }}  namespace: ${{ parameters.kubernetesNamespace }}  manifests: ${{ variables.manifestFile }} ...  

Кто-нибудь знает, как я должен использовать эти переменные с предварительно проверенными параметрами или подключениями к службам?

Скорее всего, это проблема со временем разрешения значений. Заранее определенные параметры и имена подключений к службам проверяются во время компиляции, в то время как значения из $() разрешаются во время выполнения.

Я не могу использовать расширения и переменные в этом шаблоне.

Может быть, у кого-то есть шаблон для такого рода использования?

Комментарии:

1. Когда вы говорите «он не сотрудничает», что вы имеете в виду? не компилируется ли конвейер или шаблон? Вы получаете конкретное сообщение об ошибке? Неужели ничего не происходит? Может быть полезно предоставить больший образец из вашего конвейера и шаблона.

2. @WaitingForGuacamole Я имею в виду, что он не может видеть значение. Он обрабатывает имя как значение и выводит сообщение об ошибке, что это соединение среды/службы не существует.