Azure ARM模板:DependsOn条件语句

utugiqy6  于 2023-03-03  发布在  其他
关注(0)|答案(3)|浏览(104)

有人知道是否有办法在dependsOn元素中放置内联条件语句吗?我想在中放置一个条件,即如果nestedTemplateA已经存在或者nestedTemplateB已经存在,则资源将部署在其中。
任何帮助都是感激的!

"dependsOn": [
    "[or(nestedTemplateA, nestedTemplateB)]"
  ],
u4dcyp6a

u4dcyp6a1#

ok,首先,你可以依赖于某物的存在(严格地说),你只能依赖于在同一个模板中成功创建的资源.所以如果你的模板有这样的结构:

resource1 - nested template
resource2 - nested template
resource3 - the one you are asking about

你只需要把它作为dependsOn:

"dependsOn": [
    "resource1",
    "resource2"
]

但是,正如你的问题所说:“如果nestedTemplateA已经存在,或者如果nestedTemplateB已经存在,则资源将部署在上。”我很难确定我回答的问题是否正确。如果这不是您要问的问题,如果您需要更多帮助(或者重新表述您的问题),请对此答案发表评论。我将编辑此答案,谢谢!

fiei3ece

fiei3ece2#

到目前为止,Azure在定义ARM模板中部署资源的顺序中添加了对条件dependsOn的支持
这样就可以得到你想要的特性,也就是说:你可以简单地在depondsOn数组中添加所有的条件依赖项,那些被赋值为false的依赖项将被删除。

mpbci0fu

mpbci0fu3#

我也无法明确地找到如何在dependsOnor()两个依赖项,但是我认为下面的plain/dumb方法也很好,虽然冗长,

[
  {
    "name": "first", 
    "dependsOn": ["nestedTemplateA"],
    "do": "something"
  },
  {
    "name": "second", 
    "dependsOn": ["nestedTemplateB"],
    "do": "something"
  },
]

至少这是我在我的情况下要做的。而且至少对我来说,接受的答案"dependsOn": ["resource1", "resource2"]是逻辑或并不是马上就能看出来的。希望有一天能找到这方面的文档。

相关问题