Azure Bicep:使用字典对象参数时出现无效 JSON 错误

Azure Bicep: Invalid JSON error while using dictionary object param

我尝试使用以下 bicep 代码部署自动化帐户变量:

param DictionaryAutomationAccountVariables object  = {
  var1: {
    varValue: 'value1'
  }
  var2: {
    varValue: 'value2'
  }
}


resource automationAccount 'Microsoft.Automation/automationAccounts@2019-06-01' = {
  name: 'aatest'
  location: resourceGroup().location
  properties: {
    sku: {
      name: 'Free'
    }
  }
}

resource automationVariable 'Microsoft.Automation/automationAccounts/variables@2019-06-01' = [for automationVariable in items(DictionaryAutomationAccountVariables): {
  parent: automationAccount
  name: automationVariable.key
  properties: {
    value: automationVariable.value.varValue
    isEncrypted: false
  }
}]

我输入命令 New-AzResourceGroupDeployment -Name 'mydeployment' -ResourceGroupName 'MyRG' -TemplateFile .\aaVariables.bicep,但出现以下错误:

New-AzResourceGroupDeployment: 8:43:01 AM - The deployment 'mydeployment' failed with error(s). Showing 1 out of 1 error(s).
Status Message: {"Message":"Invalid JSON - Kindly check the value of the variable."} (Code:BadRequest)

我查看了Bicep documentation中的字典对象示例,我使用完全相同的格式。

知道为什么会出现此错误吗?

更新:我试过只用没有循环的二头肌部署一个简单的自动化帐户变量。我得到了同样的错误。

我怀疑可以改进错误消息...有点...

试试这个:

    value: '"${automationVariable.value.varValue}"'

如果您想要一个字符串变量,请将值放在双引号中。

当未提供类型 属性 时(我认为甚至不可能在该 apiVersion 中提供,但它曾经是)默认类型是对象...