ARM模板,输出传递到下一个部署

问题描述

我正在尝试使用ARM模板创建Azure防火墙。部署的一部分要求我传递DNAT规则的目标地址。这必须是防火墙的公共IP。但是我不知道其值,直到创建防火墙公用IP(这是防火墙部署的一部分)为止。

如何获取防火墙公共IP的公共IP并传递给DNAT规则?我尝试使用.IpAddress引用IP,但是我得到的ipAddress不是有效参数。

                            "destinationAddresses": [
                            "Needs to be Public IP"
                        ],

这是尝试引用IP时出现的错误

The language expression property 'ipAddress' can't be evaluated.'

我正在使用它来创建IP:

  {
  "name": "[concat(variables('publicIPNamePrefix'),add(copyIndex(),1))]","type": "Microsoft.Network/publicIPAddresses","apiVersion": "2019-04-01","location": "[resourceGroup().location]","sku": {
    "name": "Standard"
  },"properties": {
    "publicIPAllocationMethod": "Static","publicIPAddressversion": "IPv4"
  },"copy": {
    "name": "publicIpcopy","count": "[parameters('numberOfPublicIPAddresses')]"
  }

},

任何帮助都将是惊人的。谢谢

解决方法

您需要执行以下操作:

reference(resourceId('Microsoft.Resources/deployments','previous_deployment_name'),'2017-05-10').outputs.%OUTPUT_NAME%.value