如何在 azure devops 模板任务中参数化 azureSubscription

use*_*502 5 azure azure-devops azure-pipelines

我正在尝试在 Azure Devops 模板中使用参数。我可以打印模板内的任何参数。但是,当我在模板中使用任何需要 azure 订阅的任务时使用参数,这将使管道始终失败

“管道无效。作业 myDeployment:步骤输入 azureSubscription 引用了无法找到的服务连接 $(mySubscription)。”

下面的管道和模板示例。有没有办法将 azure Subscription 路径指向模板?强文本

管道.yml

- stage: myStage
  pool: windows
  variables: 
    - name: azureSubscription
      value: mySubscription
    - name: keyVaultName
      name: myKeyVauld

  jobs: 
    deployment: myDeployment
    strategy: 
      runOnce:
        deploy:
          steps:
          - template: myTemplate.yml
            parameters: 
              subscription: $(azureSubscription) # changing this to literal will work but not what I need
              vault: $(keyVaultName)
Run Code Online (Sandbox Code Playgroud)

我的模板文件

parameters:
- name: subscription
  type: string
  default: ''
- name: vault
  type: string
  default: ''

steps:

- task: AzureKeyVault@1
  inputs:
    azureSubscription: '${{ parameters.subscription }}'
    keyVaultName: '${{ parameters.vault }}'
    secretsFilter: myKey
Run Code Online (Sandbox Code Playgroud)

Dan*_*ann 6

这是一个已知问题/限制。您必须将 Azure 订阅作为文字传递。不幸的是,我所知道的没有办法解决它。

关于这个 GitHub 问题,多年来一直是讨论的焦点:https : //github.com/microsoft/azure-pipelines-agent/issues/1307