Ассаф,
Это не возможно, но если вы хотите использовать переменную в следующей задаче VSTS, вот шаги, чтобы достигнуть его.
В основном файле шаблон ARM, в конце концов, output переменных, как следующее:
"outputs": {
"vhdStorageName": {
"type": "string",
"value": "[variables('vhdStorageName')]"
}
}
После вашей задачи развертывания, установите переменный в VSTS task контексте выполнения этого PowerShell скрипта:
param ([string] $resourceGroupName)
#get the most recent deployment for the resource group
$lastRgDeployment = (Get-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName | Sort Timestamp -Descending | Select -First 1)
if(!$lastRgDeployment)
{
throw "Resource Group Deployment could not be found for '$resourceGroupName'."
}
$deploymentOutputParameters = $lastRgDeployment.Outputs
if(!$deploymentOutputParameters)
{
throw "No output parameters could be found for the last deployment of '$resourceGroupName'."
}
$deploymentOutputParameters.Keys | % { Write-Host ("##vso[task.setvariable variable="+$_+";]"+$deploymentOutputParameters[$_].Value) }
Для этого скрипта вам необходимо указать имя группы ресурсов Azure, в котором будет выполнено развертывание. Скрипт получает последнее развертывание в группе ресурсов и устанавливает каждый вывод в виде переменной в контексте задачи VSTS.
Доступ к переменной и использовать его в качестве параметра, как с любой другой переменной VSTS:
-myparameter $(vhdStorageName)
Ассаф, вы хотите, чтобы иметь возможность генерировать ту же строку за пределами шаблона ARM? Или В вашем сценарии вы можете сгенерировать строку в шаблоне ARM, вернуть ее в качестве вывода, а затем использовать ее в скрипте PowerShell или задаче VSTS? –
Либо сделают. Моя цель - использовать его в задаче vsts. Либо сгенерируйте его таким же образом, либо выведите его. –