首页 > 解决方案 > 如何在变量中使用 Azure Arm 模板输出?

问题描述

我正在尝试解决我在使用 Azure ARM 模板时遇到的问题,我需要在我的 ARM 模板中捕获查询资源的输出,然后在同一个模板中,将该输出提供给变量/注入该输出到另一个依赖它的资源上的脚本中。

一个例子 -

   "outputs":{
      "downloadLocation": {
        "type": "string",
        "value": "[reference(resourceId('randomResource', variables('ResourceName'))).downloadLocation]"
      }
   }

variables: {
    "downloadLocation": "[outputs('downloadLocation')]"
}

然后在依赖于查询输出源的资源之一中引用此变量。

downloadLocation 无论如何都无法格式化,它包含多个签名和不可预测的字符串。

仅供参考 - 下面的代码通过产生错误'模板函数'输出'无效'来停止使用 arm 模板。

我没有锁定将其存储为输出,我只需要能够在另一个资源中使用该值 - 但是它已经实现了!

我知道的唯一其他途径可行,但我不想探索,是输出可以存储在某个地方的文件中,然后后续脚本将其拾取并将其注入第二个 ARM 模板。

如果有使用它的方法,请告诉我,这将对我有很大帮助!

谢谢

标签: azureazure-resource-managerarm-template

解决方案


我找到了解决方案。在资源字段内时可以调用引用函数。所以我不得不使用上面看到的引用函数,但它不能存储在变量或参数中,而是需要直接在需要它的资源中调用。在这种情况下是 osProfile - customData 字段。


推荐阅读