【问题标题】:Pass value from hashtable to a Azure DevOps YAML scheduled task将值从哈希表传递到 Azure DevOps YAML 计划任务
【发布时间】:2020-06-26 07:34:02
【问题描述】:

我有一个预定的 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 传递给第二个模板? 有人可以帮我吗?

【问题讨论】:

  • 嗨@Snigdha。好几天没收到你的回复。如果答案可以给你一些帮助,请随时告诉我。只是提醒this

标签: foreach azure-devops yaml hashtable azure-pipelines-tasks


【解决方案1】:

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

这是错误信息:

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

例如:

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

据我所知,目前没有解决方法。

这里有一个ticket,关于 Github 中的这个限制。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 2019-06-29
    • 2021-09-13
    • 2021-10-25
    • 1970-01-01
    • 2013-09-17
    • 2021-04-27
    • 2022-06-29
    • 1970-01-01
    相关资源
    最近更新 更多