将 DevOps 变量读取为 ARM 参数中的 bool

问题描述 投票:0回答:2

我正在尝试将管道变量作为布尔值读入。我在 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"
    }...
}

有什么建议吗?

azure-devops azure-pipelines azure-pipelines-release-pipeline
2个回答
0
投票

从错误信息来看,管道变量值似乎还没有传递到ARM模板文件中。

由于您已将参数值设置为

#{myVariables.disableFunkyFunction}#
,因此您可以尝试使用替换令牌扩展中的替换令牌任务。

步骤如下:

Step1: 保持参数值为

#{myVariables.disableFunkyFunction}#

Step2:使用替换令牌任务设置值。

Step3:部署ARM模板。

例如:

注意: 您需要将替换令牌任务放在 ARM 模板部署步骤之前。


0
投票

我通过使用“bool()”ARM 模板函数来转换字符串,成功解决了类似的问题。有关详细信息,请参阅:使用 DevOps Pipeline 仅将某些资源部署到 Azure 中

© www.soinside.com 2019 - 2024. All rights reserved.