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

使用Bicep合并现有App Settings与新配置时遇错误求助

问题描述

我需要给已存在的Logic App(本质属于Web App站点)新增两个配置项,编写了如下Bicep代码,但构建新配置字典对象和执行union操作时均出现异常,求解决思路。

settings.bicep

param newSettings [object]

resource logicApp 'Microsoft.Web/sites@2022-03-01' existing = {
  name: logicAppName
}

var currentSettings = list(resourceId('Microsoft.Web/sites/config', logicApp.name, 'appsettings'), '2022-03-01').properties

// 合并现有配置与新配置,更新Logic App配置
resource siteconfig 'Microsoft.Web/sites/config@2022-03-01' = {
  parent: logicApp
  name: 'appsettings'
  properties: union(currentSettings, newSettings)
}

main.bicep

var connectorSettings = [
  {'auth' : 'something goes here'}
  {'runtimeUrl': 'something else goes here'}
]

module logicAppConfig 'settings.bicep' =  {
  name: 'extendedConfig'
  params: {
    logicAppName: logicAppName
    newSettings: connectorSettings    
  }
}
错误原因分析
  1. 参数类型不匹配:settings.bicep中newSettings定义为[object](对象数组),但currentSettings是单个键值对对象(来自appsettings的properties),union函数要求两个输入类型一致(均为对象或均为数组),数组与对象执行union会直接报错。
  2. 配置结构错误:main.bicep中connectorSettings是对象数组,但我们需要的是包含两个配置项的单个对象,数组结构不符合appsettings的键值对格式要求,导致构建配置字典时异常。
修正方案

修正后的settings.bicep

// 新增缺失的logicAppName参数
param logicAppName string
// 将newSettings类型改为object,而非数组
param newSettings object

resource logicApp 'Microsoft.Web/sites@2022-03-01' existing = {
  name: logicAppName
}

var currentSettings = list(resourceId('Microsoft.Web/sites/config', logicApp.name, 'appsettings'), '2022-03-01').properties

resource siteconfig 'Microsoft.Web/sites/config@2022-03-01' = {
  parent: logicApp
  name: 'appsettings'
  // 两个对象执行union,新配置会覆盖现有同名键(如果存在)
  properties: union(currentSettings, newSettings)
}

修正后的main.bicep

// 定义logicAppName参数(原代码缺失)
param logicAppName string

// 将connectorSettings改为单个对象,包含两个配置项
var connectorSettings = {
  'auth' : 'something goes here'
  'runtimeUrl': 'something else goes here'
}

module logicAppConfig 'settings.bicep' = {
  name: 'extendedConfig'
  params: {
    logicAppName: logicAppName
    newSettings: connectorSettings    
  }
}
额外说明
  • union函数会保留currentSettings的所有键,同时添加newSettings中的新键;如果存在同名键,newSettings的值会覆盖currentSettings的值。
  • 确保部署账号对目标Logic App有读取现有配置和更新配置的权限,避免权限类异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:08:19