0

我有一个预定的 yaml 管道。2个要执行的任务。第一个任务是创建一个哈希表,它是订阅和资源组数组的组合。第二个任务是使用一个订阅和来自第一个任务的一个 rg 调用另一个模板。代码在下面提到。

steps:

- task: AzurePowerShell@5
  displayName: 
  condition: succeeded()
  inputs:
    azureSubscription: '$(AzureSubscription)'
    ScriptType: 'InlineScript'
    Inline: |
      $Subscriptions = Get-AzSubscription
      $AKSSubscriptionAndRG = @{}
 
      foreach ($Subscription in $Subscriptions) {
      Set-AzContext -SubscriptionName $Subscription
      $AKSResourceGroup = (Get-AzResource -ResourceType "Microsoft.ContainerService/managedClusters").ResourceGroupName
      if(![String]::IsNullOrWhiteSpace($AKSResourceGroup)){
      $AKSSubscriptionAndRG.add($Subscription.Name,$AKSResourceGroup)
      }
      }
      Write-Output "Exporting pipeline variable AKSSubscription with value AKSRG"
      Write-Output "##vso[task.setvariable variable=AKSSubscriptionAndRG;]$AKSSubscriptionAndRG"
    azurePowerShellVersion: 'LatestVersion'
    FailOnStandardError: true

- template: another.yaml
  parameters:
    AzureSubscription: '$(AzureSubscription)'
    AksResourceGroupName: '$(AksResourceGroupName)'

我的问题是:如何将每个订阅和 RG 传递给第二个模板?有人能帮我吗?

4

1 回答 1

1

根据我的测试,当我在模板中传递Defined variablestoAzureSubscription参数时,参数似乎只能识别文本本身。定义的变量无法传递给参数。

这是错误消息:

在此处输入图像描述

这是一个已知的问题。您必须将 Azure 订阅作为文字传递。

例如:

- template: another.yml
  parameters:
     AzureSubscription: Subscriptionname
     AksResourceGroupName: groupname

据我所知,现在没有解决方法。

这是 Github 中关于此限制的一张票。

于 2020-06-29T02:30:13.913 回答