parameters:
- name: environment
type: string
default: dev
- name: region
type: string
default: ${{ if or(eq(parameters.environment, 'dev'), eq(parameters.environment, 'tst')) }}central${{ else }}${{ if eq(parameters.environment, 'both') }}central, east${{ else }}east${{ endif }}${{ endif }}
我将条件设置为如果参数环境是开发或测试,那么参数区域将是中央,对于其他环境,该区域将是中央、东部、两者
但同时我收到错误,因为嵌入的表达式不支持指令
最佳答案
我不相信您可以在参数中运行表达式。为了实现所需的行为,我认为您宁愿运行表达式来根据条件设置变量值。
所以会是:
parameters:
- name: environment
type: string
default: dev
variables:
${{ if or(eq(parameters.environment, 'dev'), eq(parameters.environment, 'tst')) }}:
region: 'central'
${{ if eq(parameters.environment, 'both') }} :
region: 'central, east'
${{ else }} :
region: 'east'
我还没有测试过这个;然而,这种方法应该有效。然后,您可以将您的区域引用为 ${{ Variables.region}}
,并可以将其传递给 future 的输入/模板。
这是一个stackoverflow post这也提供了一个例子。
关于Azure Devops 参数条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76575287/