【问题标题】:Trying to create a dynamic Depends On Array for an Azure ARM Template尝试为 Azure ARM 模板创建动态 Depends On Array
【发布时间】:2017-12-17 09:22:29
【问题描述】:

我正在尝试像这样在 ARM 模板配置中创建一个动态 DependOn 属性

  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2017-05-10",
  "dependsOn": [],

我确实有需要依赖的场景。因此,如果资源需要该类型的数据作为依赖项,我将创建一个动态将数据添加到数组的变量。

例如,如果我将参数设置为在参数部分将可用性集包含为 true,则我的虚拟机可能依赖于可用性集。

到目前为止,唯一的方法是根据真/假答案调用动态变量(数组),如下所示:

变量(concat('Dependon_AS_',parameters('IncludeAS'))

有没有更好的方法来处理这个问题?

【问题讨论】:

    标签: arrays json azure azure-resource-manager arm-template


    【解决方案1】:

    据我了解,您不需要动态依赖的问题。 dependsOn 尊重条件,所以如果元素由于condition: false而被跳过,不会出错。

    【讨论】:

    • 我已经在可用性集资源上应用了条件。如果它的条件设置为false,那么它不会被部署,但是VM资源仍然有dependOn部分。如果我尝试部署模板,我将收到指向尚未发生的部署的错误。
    • 不,它不是这样工作的。 dependsOn 尊重条件并且如果条件跳过资源不会导致错误。这是example
    • @4c74356b41 这不起作用。如果您在资源中有一个dependsOn,但由于另一个条件不会创建dependsOn数组中的一个元素,则初始资源的创建将失败,因为它找不到它所依赖的资源。我试图通过创建数组变量并在dependsOn数组中使用if条件来解决这个问题,但我得到了这个:Evaluation result of language expression <if condition> is type 'Array', expected type is 'String'
    • 不,那不是真的:docs.microsoft.com/en-us/azure/azure-resource-manager/templates/…。我的意思是,如果您的资源真的依赖于未创建的资源 - 这是您的错误。你不能那样做。但这很明显
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2016-12-03
    • 2018-01-01
    • 1970-01-01
    相关资源
    最近更新 更多