【发布时间】:2018-04-10 17:32:08
【问题描述】:
我有一个 ServiceBuswithQueue ARM 模板,它的输出部分如下所示:
"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 模板。
在发布此问题之前,我进行了研究并找到了以下链接,但这些链接对解决我的问题没有帮助。
Azure ARM templates - using the output of other deployments
How do I use ARM 'outputs' values another release task?
谁能建议我如何解决上述问题?
【问题讨论】:
-
您的意思是在 PowerShell 任务中一起部署 ARM 模板?
-
是的 Starian,目前我正在使用 PowerShell 任务来部署 ARM 模板。
-
可以直接使用输出吗?例如:
$r=New-AzureRmResourceGroupDeployment ....,则可以在示例脚本中直接访问$r。 -
@starianchen-MSFT,实际上我的第一个 ARM 模板将输出为“serviceBusNamespaceName”。但我想将第一个 ARM 模板的输出用作下一个 ARM 模板的输入参数。
-
您可以覆盖参数。
标签: arm azure-devops azure-resource-manager azure-pipelines-release-pipeline