ARM模板中如何引用Key Vault访问策略作为其他资源的dependsOn依赖
解决方案
你完全可以通过resourceId函数构造该访问策略的资源标识来实现依赖引用,你误以为该资源没有独立名称是误解:你当前使用的是Key Vault增量添加访问策略的特殊子资源,它的子资源名就是固定的add,对应你定义的name属性中/后面的部分。
你可以直接在其他资源的dependsOn数组中加入如下语句即可:
[resourceId('Microsoft.KeyVault/vaults/accessPolicies', parameters('keyVaultName'), 'add')]
原理说明
ARM模板的resourceId函数对嵌套子资源的支持规则为:按资源类型的层级顺序,依次传入每一层的资源名即可。你用到的Microsoft.KeyVault/vaults/accessPolicies是两级嵌套的资源类型,第一层是Key Vault实例名,第二层是访问策略资源的名称(也就是你这里的add),所以完全可以按上述规则构造出正确的资源唯一标识。
如果你不想用resourceId函数,也可以直接用资源的完整类型+名称的组合写法,效果一致:
"dependsOn": [ "[concat('Microsoft.KeyVault/vaults/', parameters('keyVaultName'), '/accessPolicies/add')]" ]
内容的提问来源于stack exchange,提问作者crazytalk
相关产品推荐
相关产品推荐

