我在Azure DevOps中有一个任务组,该任务组执行以下任务(以及其他任务):
1-从密钥库中读取机密
2-将应用程序的设置设置/更新为密钥库中的机密
[
{
"name": "Foo",
"value": "$(FooKeyVaultKey)",
"slotSetting": false
}
]
在执行上述任务的任务组中,我想要的唯一参数是密钥库的名称,该密钥库将从中获取秘密。由于第二个任务使用变量(由任务1设置),因此该任务组将创建一个名为“ FooKeyVaultKey”的新参数。
我尝试以不同的方式访问变量,但只能使用括号。
$(FooKeyVaultKey) - works, but creates parameter
${{FooKeyVaultKey}} - doesn't work
${FooKeyVaultKey} - doesn't work
$[FooKeyVaultKey] - doesn't work
答案 0 :(得分:1)
简单的技巧是使用嵌套在变量表达式中的空白表达式(Microsoft称之为宏语法):
$($()foo)
这样就不会为任务组创建参数。
编辑:
我注意到一些不一致的行为,有时应用程序配置会被设置为字面$($()foo)
。
答案 1 :(得分:0)
这是不可能的。这是用the documentation
编写的基础任务中的所有“ $(vars)”(不包括预定义变量)将作为新创建的任务组的必需参数浮出水面。
例如,假设您有一个任务输入$(foobar),您不想对其进行参数化。但是,在创建任务组时,任务输入将转换为任务组参数'foobar'。现在,您可以将任务组参数'foobar'的默认值提供为$(foobar)。这样可以确保在运行时,展开的任务获得与预期相同的输入。