Azure 如何输出在循环中创建的资源

Azure 如何输出在循环中创建的资源,azure,azure-resource-manager,arm-template,Azure,Azure Resource Manager,Arm Template,我正在Azure中使用arm模板创建一个或多个公共IP地址。地址的数量取决于用户提供的参数 我正在使用下面的代码片段来实现这一点 "resources": [ { "type": "Microsoft.Network/publicIPAddresses", "name": "[concat(parameters('publicIPAddressesName'), '-', copyIndex())]", "apiVersion": "2017-10-01",

我正在Azure中使用arm模板创建一个或多个公共IP地址。地址的数量取决于用户提供的参数

我正在使用下面的代码片段来实现这一点

"resources": [
  {
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[concat(parameters('publicIPAddressesName'), '-', copyIndex())]",
    "apiVersion": "2017-10-01",
    "location": "[parameters('location')]",
    "copy": {
      "name": "publicIPAddressesCopy",
      "count": "[parameters('publicIPAddressesCount')]"
    },
    "properties": {
      "publicIPAddressVersion": "IPv4",
      "publicIPAllocationMethod": "Static",
      "idleTimeoutInMinutes": 4
    }
  },
  ...
],
我能够使用下面的代码片段输出几个IP地址

"outputs": {
  "publicIPs": {
    "type": "object",
    "value": {
      "VM-1": {
        "publicIP": "[reference(resourceId('Microsoft.Network/publicIPAddresses', concat(parameters('publicIPAddressesName'), '-1')), '2017-10-01').ipAddress]"
      },
      "VM-2": {
        "publicIP": "[reference(resourceId('Microsoft.Network/publicIPAddresses', concat(parameters('publicIPAddressesName'), '-2')), '2017-10-01').ipAddress]"
      },
    }
  }
}
这不是很有用,因为新的公共IP地址可以少于或多于2个。问题是我不能在模板的输出部分使用循环


我如何输出所有创建的公共IP地址,知道它们的数量在每次模板运行之间都会发生变化?

现在唯一的方法是在嵌套部署上使用复制循环,并根据copyIndex在每个部署中输出一个IP地址。

我希望可以避免这样做,但这也是我找到的唯一方法。