解决从DevOps Pipeline YAML向Bicep传递布尔值参数的类型错误
overrideParameters: -my_parameter_inside ${{ parameters.my_parameter }}
### Bicep参数定义 ```bicep @description('Enable/Disable something') param my_parameter_inside bool = true
解决方法
方法1:用条件表达式输出原生布尔值
直接在overrideParameters里通过条件判断输出true或false,避免流水线自动添加引号转为字符串:
overrideParameters: -my_parameter_inside ${{ if eq(parameters.my_parameter, true) }} { true } else { false }
方法2:通过变量传递保留类型
先将流水线布尔参数赋值给变量,再传递给任务,变量会保留原生布尔类型:
variables: my_param_value: ${{ parameters.my_parameter }} steps: - task: AzureResourceManagerTemplateDeployment@3 inputs: csmFile: $(bicep_file_name) csmParametersFile: $(bicep_parameter_file_name) ... overrideParameters: -my_parameter_inside $(my_param_value)
方法3:结合ARM参数文件(可选)
如果使用ARM参数文件,确保文件中参数类型定义为bool,再通过流水线覆盖时传递正确的布尔值。不过前两种方式更直接高效。
内容的提问来源于Stack Exchange,提问作者Cribber
相关产品推荐
相关产品推荐

