在使用VSTS的连续部署中,如何将一个ARM模板的输出传递给下一个ARM模板的输入参数?
我有一个ServiceBuswithQueue ARM模板,其输出部分如下所示:在使用VSTS的连续部署中,如何将一个ARM模板的输出传递给下一个ARM模板的输入参数?,arm,azure-devops,azure-resource-manager,azure-pipelines-release-pipeline,Arm,Azure Devops,Azure Resource Manager,Azure Pipelines Release Pipeline,我有一个ServiceBuswithQueue ARM模板,其输出部分如下所示: "outputs": { "serviceBusNamespaceName": { "type": "string", "value": "[parameters('serviceBusNamespaceName')]" }, "namespaceConnectionString": { "type": "string", "value":
"outputs": {
"serviceBusNamespaceName": {
"type": "string",
"value": "[parameters('serviceBusNamespaceName')]"
},
"namespaceConnectionString": {
"type": "string",
"value": "[listkeys(variables('authRuleResourceId'), variables('sbVersion')).primaryConnectionString]"
},
"sharedAccessPolicyPrimaryKey": {
"type": "string",
"value": "[listkeys(variables('authRuleResourceId'), variables('sbVersion')).primaryKey]"
},
"serviceBusQueueName": {
"type": "string",
"value": "[parameters('serviceBusQueueName')]"
}
}
为此,我在VSTS中创建了连续集成(CI)和连续部署(CD),在CD中,我使用了PowerShell任务来部署上述ARM模板。但我想将此ARM模板的输出(如“$(serviceBusQueueName)”传递给连续部署中下一个ARM模板的输入参数
我们知道,在连续部署的两个ARM任务之间使用ARM输出可以实现上述场景。但我不想要它,因为目前我正在使用PowerShell任务部署ARM模板
在发布这个问题之前,我进行了研究,发现以下链接对解决我的问题没有帮助
有谁能建议我如何解决上述问题吗?您可以通过指定相应的参数来覆盖参数
您可以通过指定相应的参数来覆盖参数 可以在后续脚本中显示所有环境变量:
Write-Host "Environment variables:"
gci env:* | sort-object name
可以在后续脚本中显示所有环境变量:
Write-Host "Environment variables:"
gci env:* | sort-object name
您的意思是在PowerShell任务中一起部署ARM模板吗?是的,Starian,目前我正在使用PowerShell任务部署ARM模板。您可以直接使用输出吗?例如:
$r=New AzureRmResourceGroupDeployment….
,然后您可以直接在示例脚本中访问$r。@starianchen MSFT,实际上我的第一个ARM模板将输出为“serviceBusNamespaceName”。但我想将第一个ARM模板的输出用于下一个ARM模板的输入参数。您可以覆盖参数。您的意思是要在PowerShell任务中一起部署ARM模板吗?是的,Starian,目前我正在使用PowerShell任务部署ARM模板。您能直接使用输出吗?例如:$r=New AzureRmResourceGroupDeployment….
,然后您可以直接在示例脚本中访问$r。@starianchen MSFT,实际上我的第一个ARM模板将输出为“serviceBusNamespaceName”。但我想将第一个ARM模板的输出用于下一个ARM模板的输入参数。您可以覆盖参数。