【问题标题】:Difference between concat function and resource id function in Azure ARM TemplateAzure ARM模板中concat函数和资源id函数的区别
【发布时间】:2020-09-09 11:51:57
【问题描述】:

谁能告诉我这两者有什么区别,在 Azure ARM JSON 模板的资源部分应该使用哪一个

"dependsOn": [
      [concat('Microsoft.Compute/availabilitySets/', variables('availabilitySetName'))]"
"dependsOn": [
      [resourceid('Microsoft.Compute/availabilitySets/', variables('availabilitySetName'))]"

【问题讨论】:

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


    【解决方案1】:

    resourceId 只是生成 resourceId 的一种便捷方式,而不是“假”的方式,因为如果您尝试将 concat 示例与任何期望的函数\资源属性一起使用,您所显示的示例仅适用于 dependsOn 属性一个 resourceId 它将失败。

    基本上,dependsOn 在解析输入时允许使用一些快捷方式,因此您可以执行以下操作:

    dependsOn: [
        "resourceName"
    ]
    

    如果该名称是唯一的 - 那很好。但它不是您可能认为的真正的 resourceId。

    连接:https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-array#concat
    资源ID:https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#resourceid

    【讨论】:

      【解决方案2】:

      “concat”函数:

      • 将多个数组合并为一个数组

      • 将多个字符串组合成一个字符串

      更多详情请见this link

      而“resourceId”函数:

      • 它给出了调用它的资源的唯一标识符。 请参阅this link 了解更多详情。

      现在您的问题是“应该在 Azure ARM JSON 模板的资源部分使用哪一个”。 接下来,我在我的 ARM 模板中使用了它,它对我有用:

      "availabilitySet": { "id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('availabilitySetName'))]" }
              }
      

      【讨论】:

        猜你喜欢
        • 2016-12-03
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多