如何"dependsOn"一个资源的所有副本?

How to "dependsOn" all copies of a resource?

如何设置 dependsOn 以依赖于特定资源的所有副本?假设我部署了 0..N 个网站,我需要在部署流量管理器之前完成所有这些网站,因为 TM 需要资源 ID。

目前我只部署 2 个,所以我只是在 dependsOn 数组中枚举两个项目,但如果我决定部署更多副本(由 [variables('tdfConfiguration')] array),如果 dependsOn 能动态地解决这个问题就好了。

  "apiVersion": "[variables('apiVersion')]",
  "type": "Microsoft.Resources/deployments",
  "name": "[concat(resourceGroup().name, '-', variables('tdfConfiguration')[0]['roleName'], '-tmprofile')]",
  "dependsOn": [
    "[concat(resourceGroup().Name, '-', variables('tdfConfiguration')[0]['roleName'], '-website')]",
    "[concat(resourceGroup().Name, '-', variables('tdfConfiguration')[1]['roleName'], '-website')]"
  ],

相当简单,使用复制名称。假设您有这样的资源:

"name": xxx,
"type": zzz,
...
"copy": {
    "name": "myCopy",
    "count": 0..N
}

您可以使用以下 dependsOn 来依赖所有副本:

"dependsOn": [ "myCopy" ]

阅读:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-multiple#depend-on-resources-in-a-loop