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

时间:2020-02-27 16:03:17

标签: azure azure-devops azure-pipelines

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

而失败

“管道无效。Job myDeployment:步骤输入 azureSubscription引用服务连接$(mySubscription) 找不到。”

以下管道和模板的示例。 有什么方法可以将“蓝色订阅”路径传递到模板吗?强文本

pipeline.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)

myTemplate.yml

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

steps:

- task: AzureKeyVault@1
  inputs:
    azureSubscription: '${{ parameters.subscription }}'
    keyVaultName: '${{ parameters.vault }}'
    secretsFilter: myKey

2 个答案:

答案 0 :(得分:3)

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

在GitHub问题https://github.com/microsoft/azure-pipelines-agent/issues/1307

上,多年来一直是讨论的焦点

答案 1 :(得分:-1)

您需要转到项目设置-> 管道部分-> 服务连接,并创建 Service Connection 对于 Azure资源管理器,请在服务主体托管身份身份验证类型之间进行选择。

enter image description here

azureSubscription参数中可以在YAML文件中使用创建的服务连接的名称。

enter image description here