如何有条件地在 ARM 模板中包含 dependOn

How to conditionally include dependOn in ARM template

我有一个场景,我需要有条件地在 ARM 模板中的资源上包含 dependsOn 属性。我试过下面的代码

"dependsOn": "[if(contains(parameters('abc'),'dependsOn'),parameters('abc').dependsOn, variables('defaultDependsOn'))]",

但模板验证错误并显示以下消息

The request content was invalid and could not be deserialized: 'Error converting value "[if(contains(parameters('abc'),'dependsOn'),parameters('abc').dependsOn, variables('defaultDependsOn'))]" to type 'System.String[]'. Path 'properties.template.resources[0].dependsOn', line 1, position 2429.'.

属性 dependsOn 的意思是Define the order for deploying resources in Azure Resource Manager Templates,你可以从这个文档中得到更多的细节。

如果下错命令也会造成循环依赖。所以你应该仔细设置 dependsOn 属性。

对于您发布的错误,我认为您应该将 dependsOn 属性 的值设置为文档所述的真实资源。