阿薩夫,
這是不可能的,但假設你想用你的變量在隨後的VSTS的任務,這裏有實現它的步驟。
在你的主臂的模板文件,在年底,output您變量就像下面:
"outputs": {
"vhdStorageName": {
"type": "string",
"value": "[variables('vhdStorageName')]"
}
}
部署任務後,通過執行這個PowerShell腳本設置你的變量在VSTS task方面:
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任務中使用它。以相同的方式生成它或輸出它。 –