You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ARM模板中参数化嵌套JSON对象(以SKU为例)

如何在ARM模板中参数化嵌套JSON对象(以消耗计划的sku为例)

当然可以一次性参数化整个sku嵌套对象,不用拆分每个字段单独定义参数。具体实现步骤如下:

1. 定义object类型的参数

在ARM模板的parameters区块中,新增一个类型为object的sku参数,还可以设置默认值(匹配你原本的消耗计划配置)和描述,提升模板复用性:

"parameters": {
    "location": {
        "type": "string",
        "defaultValue": "[resourceGroup().location]"
    },
    "hostingPlanName": {
        "type": "string"
    },
    "sku": {
        "type": "object",
        "defaultValue": {
            "name": "Y1",
            "tier": "Dynamic",
            "size": "Y1",
            "family": "Y",
            "capacity": 0
        },
        "metadata": {
            "description": "消耗计划的SKU配置对象,包含name、tier、size、family、capacity字段"
        }
    }
}

2. 在资源中引用整个参数对象

修改Microsoft.Web/serverfarms资源的sku属性,直接引用这个对象参数即可:

{
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-03-01",
    "name": "[parameters('hostingPlanName')]",
    "location": "[parameters('location')]",
    "sku": "[parameters('sku')]",
    "properties": {
        "computeMode": "Dynamic"
    }
}

3. 部署时自定义SKU配置(可选)

如果需要在部署时传入不同的SKU配置,比如切换到其他计划类型,可通过以下方式传递对象参数:

  • Azure CLI命令示例:
az deployment group create \
  --resource-group <你的资源组名> \
  --template-file <模板路径> \
  --parameters hostingPlanName="myPlan" sku="{'name':'P1v3','tier':'PremiumV3','size':'P1v3','family':'P','capacity':1}"
  • 参数文件(parameters.json)示例:
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "hostingPlanName": {
            "value": "myPlan"
        },
        "sku": {
            "value": {
                "name": "P1v3",
                "tier": "PremiumV3",
                "size": "P1v3",
                "family": "P",
                "capacity": 1
            }
        }
    }
}

这种方式比拆分单个参数更简洁,尤其适合字段较多的嵌套对象,能灵活控制整个配置块。

内容的提问来源于stack exchange,提问作者Bilal Shafqat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:05:22