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

ARM模板创建Cosmos DB容器时表达式属性'0'无法计算如何解决

报错原因
  1. 变量copy生成的数组路径引用错误
    ARM模板中使用变量级copy生成的数组,会以你定义的copy块的name属性作为key挂载在父对象下。你定义的copy名称为autoscaleSettings,因此最终生成的配置数组实际路径是variables('autoscaleOptions').autoscaleSettings。你调用时直接使用variables('autoscaleOptions')[copyIndex('ContainerCopy')],相当于尝试从对象类型的autoscaleOptions上取下标为0的属性,自然触发无法评估属性'0'的报错。
  2. 自动扩容的判断逻辑写反
    当前变量中的if表达式逻辑为:当容器的autoscale参数为true时返回空值,为false时返回maxThroughput,和实际业务逻辑完全相反,后续即使路径修正后也会出现配置错误。
修复方案

1. 修正变量引用路径

将容器资源定义中的options字段代码修改为:

"options": "[variables('autoscaleOptions').autoscaleSettings[copyIndex('ContainerCopy')]]"

变量copy的input字段定义的内容会直接作为生成的autoscaleSettings数组的元素,无需额外加.input后缀。

2. 修正自动扩容条件逻辑

将变量定义中maxThroughput对应的表达式修改为:

"maxThroughput": "[if(parameters('containers')[copyIndex('autoscaleSettings')].autoscale, parameters('containers')[copyIndex('autoscaleSettings')].maxThroughput, null())]"

调整后逻辑为:当autoscale参数为true时传入配置的最大吞吐量,为false时返回空值,符合自动扩容的配置规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:48:03