我正在尝试将管道变量作为布尔值读入。我在 json 中定义了以下参数:
"parameters": {
"disableFunkyFunction": {
"value": "#{myVariables.disableFunkyFunction}#",
"type": "bool"
}...
}
在我的 Azure DevOps 发布管道中,我有一个名为 myVariables.disableFunkyFunction 的管道变量,其值设置为 true。但是,每当我尝试运行管道时,它都会在“Azure 资源组部署”步骤中失败:模板参数“disableFunkyFunction”提供了无效值。预期为“Boolean”类型的值,但收到了“String”类型的值。 我尝试过使用值 1,但无济于事。
以下方法有效,但理想情况下我想从 DevOps 管道变量中读取值,而不是在参数文件中对其进行硬编码:
"parameters": {
"disableFunkyFunction": {
"value": true,
"type": "bool"
}...
}
有什么建议吗?
从错误信息来看,管道变量值似乎还没有传递到ARM模板文件中。
由于您已将参数值设置为
#{myVariables.disableFunkyFunction}#
,因此您可以尝试使用替换令牌扩展中的替换令牌任务。
步骤如下:
Step1: 保持参数值为
#{myVariables.disableFunkyFunction}#
。
Step2:使用替换令牌任务设置值。
Step3:部署ARM模板。
例如:
注意: 您需要将替换令牌任务放在 ARM 模板部署步骤之前。
我通过使用“bool()”ARM 模板函数来转换字符串,成功解决了类似的问题。有关详细信息,请参阅:使用 DevOps Pipeline 仅将某些资源部署到 Azure 中