在使用VSTS的连续部署中,如何将一个ARM模板的输出传递给下一个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":

我有一个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模板

在发布这个问题之前,我进行了研究,发现以下链接对解决我的问题没有帮助


有谁能建议我如何解决上述问题吗?

您可以通过指定相应的参数来覆盖参数


您可以通过指定相应的参数来覆盖参数

可以在后续脚本中显示所有环境变量:

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模板的输入参数。您可以覆盖参数。