我在我的azure管道中设置了一个,它通过azure CLI创建Redis缓存实例。之后运行的另一个任务是从名为"的管道变量中选择并设置我的应用程序配置文件中的值;CacheConnectionKey";。
我必须在管道中手动设置变量值。我想通过在上述两者之间添加一个新任务来自动化这个过程。新任务应该从Redis缓存实例中获取PrimaryKey,并在管道变量中设置值(即CacheConnectionKey(。
我在电源壳中尝试了一个命令,它给了我访问密钥:
Get-AzRedisCacheKey -ResourceGroupName "MyResourceGroup" -Name "MyCacheKey"
PrimaryKey : pJ+jruGKPHDKsEC8kmoybobH3TZx2njBR3ipEsquZFo=
SecondaryKey : sJ+jruGKPHDKsEC8kmoybobH3TZx2njBR3ipEsquZFo=
现在,我想在管道变量CacheConnectionKey中设置此命令产生的PrimaryKey,以便下一个进程可以正确使用该值。
;过程";我想问题中提到的可能是运行/作业/阶段/管道。无论如何,在YAML管道中,您可以在根、阶段和作业级别设置变量。还可以使用变量组使变量在多个管道中可用。有些任务定义输出变量,您可以在下游步骤、作业和阶段中使用这些变量。
在YAML中,可以通过使用依赖关系跨作业和阶段访问变量。默认情况下,管道中的每个阶段都依赖于YAML文件中它之前的阶段。因此,如果您需要引用一个不在当前阶段之前的阶段,可以通过向该阶段添加dependsOn
节来覆盖此自动默认值。
例如,假设您有一个名为MyTask
的任务,它设置了一个称为MyVar
的输出变量。
在同一作业中使用输出:
steps:
- task: MyTask@1 # this step generates the output variable
name: ProduceVar # because we're going to depend on it, we need to name the step
- script: echo $(ProduceVar.MyVar) # this step uses the output variable
在不同的作业中使用输出:
jobs:
- job: A
steps:
# assume that MyTask generates an output variable called "MyVar"
- task: MyTask@1
name: ProduceVar # because we're going to depend on it, we need to name the step
- job: B
dependsOn: A
variables:
# map the output variable from A into this job
varFromA: $[ dependencies.A.outputs['ProduceVar.MyVar'] ]
steps:
- script: echo $(varFromA) # this step uses the mapped-in variable
有关语法和示例的更多详细信息,请查看以下文章:
- 使用任务的输出变量
- 依赖项