AzureDevops:我们可以在YAML中将动态值作为服务连接传递吗 [英] AzureDevops: Can we pass dynamic value as service connection in yaml

查看:7
本文介绍了AzureDevops:我们可以在YAML中将动态值作为服务连接传递吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个YAML。其中我需要基于检索所有必需订阅的另一个任务将serviceconconnection传递给脚本/模板。 问题是:我可以将动态值传递给服务连接吗?它给我带来编译时间错误。

我的代码如下:

trigger: none
pr: none

parameters:
- name: AzureSubscription
  type: object
  default: 
    xxx:
      Sub: xxx
    yyy:
      Sub: yyy

jobs:
- job:  Updating
  condition: succeeded()
  pool: 
    vmImage: "windows-latest"
  strategy:
      maxParallel: 10
      matrix: ${{ parameters.AzureSubscription }} 
  steps:
    - task: AzurePowerShell@5
      displayName: Tes
      inputs:
        azureSubscription: 'zzz'
        ScriptType: 'InlineScript'
        Inline: |
              Write-Output "subcriptionList ---- $(Sub)"
        FailOnStandardError: true
        azurePowerShellVersion: 'LatestVersion'
        pwsh: true
        
    - task: AzurePowerShell@4
      displayName: Updating
      inputs:
        **azureSubscription: ${{ sub }}** # here it is giving me error?
        ScriptType: 'FilePath'
        ScriptPath: '$(System.DefaultWorkingDirectory)/Foundation/xxxxx.ps1'
        azurePowerShellVersion: 'LatestVersion'

因此在第二个任务中,我将从我的参数传递订阅。

Error is :  Unrecognized value: 'sub'. 

有人能帮我吗?

推荐答案

这可能具有一定的创造性,但不是任务本身。而是使用变量并动态加载变量文件。

我通常在单独的存储库中将服务连接名称声明为变量模板文件。这允许在组织中的所有项目之间重用,这不是必需的,但这样做会更容易。模板名称的一部分将是要部署到的环境。因此,模板文件可能名为azure.dev.ymlazure.uat.yml,如下所示:

variables:
AzureSubscriptionServiceConnectionName: Azure - Dev

然后,在阶段/作业范围内定义的变量将加载模板文件,如下所示,假设参数或局部变量将与给定的环境名称一起传入。

  variables: 
  - template: /azure.${{ parameters.environmentName }}.yml

然后阶段/作业可以通过以下方式引用此变量:

${{ variables.AzureSubscriptionServiceConnectionName }}

这里有更多Microsoft Documentation on YAML Pipeline Variable Scope

这篇关于AzureDevops:我们可以在YAML中将动态值作为服务连接传递吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆