将值从哈希表传递到 Azure DevOps YAML 计划任务
Pass value from hashtable to a Azure DevOps YAML scheduled task
我有一个预定的 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 传递给第二个模板?
有人可以帮助我吗?
根据我的测试,当我在模板中传递Defined variables
到AzureSubscription
参数时,参数似乎只能识别文本本身。定义的变量无法传递给参数。
错误信息如下:
这是一个已知问题。您必须将 Azure 订阅作为文字传递。
例如:
- template: another.yml
parameters:
AzureSubscription: Subscriptionname
AksResourceGroupName: groupname
据我所知,目前没有解决方法。
Github.
中有关于此限制的 ticket
我有一个预定的 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 传递给第二个模板? 有人可以帮助我吗?
根据我的测试,当我在模板中传递Defined variables
到AzureSubscription
参数时,参数似乎只能识别文本本身。定义的变量无法传递给参数。
错误信息如下:
这是一个已知问题。您必须将 Azure 订阅作为文字传递。
例如:
- template: another.yml
parameters:
AzureSubscription: Subscriptionname
AksResourceGroupName: groupname
据我所知,目前没有解决方法。
Github.
中有关于此限制的 ticket