【问题标题】:Azure ARM Template: DependsOn conditional statementAzure ARM 模板:DependsOn 条件语句
【发布时间】:2018-11-28 22:55:04
【问题描述】:

有谁知道是否有办法在 dependsOn 元素中放置内联条件语句?我想设置一个条件,即如果nestedTemplateA 已经存在或者nestedTemplateB 已经存在,资源将部署在上面。

感谢任何帮助!

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

【问题讨论】:

    标签: json azure arm-template azure-template


    【解决方案1】:

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

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

    你只需要使用它作为dependsOn:

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

    但是,正如您的问题所述:“如果nestedTemplateA 已经存在或者nestedTemplateB 已经存在,则资源将部署在上面。”我真的很难确定我在回答正确的问题。如果这不是您要问的问题,如果您需要更多帮助(也许,重新表述您的问题),您能否评论这个答案。我会编辑这个答案,干杯!

    【讨论】:

    • 我明白你在说什么。我确实有多个资源(resource1、resource2、resource3)。但是,这些资源是有条件的,所以有时会部署它们,有时不会。我想知道是否可以将 dependsOn 元素用作条件语句。比如resource1 OR resource2部署成功,则创建resource4。
    • 基本上只依赖两者,如果它们被跳过它不会崩溃。此外,如果您需要完全跳过它们,如果它们都被跳过,则需要使用条件。基本上,总是依赖于你需要依赖的东西,如果它被跳过,dependsOn 不会中断。
    【解决方案2】:

    截至今天,Azure 在Define the order for deploying resources in ARM templates 中添加了对条件dependsOn 的支持

    这允许您正在寻找的确切功能。也就是说:你可以简单地将所有条件依赖添加到 depondsOn 数组中。那些评估为 false 的依赖项将被删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多