Azure mainTemplate.json - 访问 templateLink 的输出

问题描述

我有一个类似于以下内容的 JSON 部署模板:

{
    "type": "Microsoft.Resources/deployments","apiVersion": "2019-10-01","name": "parameters('storageAccounts')[copyIndex()].name","resourceGroup": "[resourceGroup().name]","properties": {
        "mode": "Incremental","templateLink": {
            "uri": "'https://foo.blob.sa/StorageAccount/azuredeploy.json"
        },"parameters": {
            ...
        }
    },

azuredeploy.json 创建存储帐户,然后具有以下内容

"outputs": {
    "storageAccountWebEndpoint": {
        "type": "object","value": {
            "tags": { ... },"type": "string","value": "[reference(parameters('storageAccountName')).primaryEndpoints.web]"
        }
    },

是否可以利用链接模板的输出为我的部署模板中的另一个资源设置属性
如果是这样,语法是什么?

(假设我的 dependsOn 设置正确。)

解决方法

您可以使用函数 reference() 获取链接模板中的输出:

"[reference('deploymentName').outputs.propertyName.value]"

但请注意:

从链接模板获取输出属性时,该属性 名称不得包含破折号。

获取更多详细信息here