在DevOps Release Pipeline中,如何在Azure Powershell任务中使用环境变量?

4
在Azure DevOps发布管道中,我有一个代理作业。在该代理作业中,我有一个Azure Powershell任务。我没有看到一种方法来为Azure Powershell脚本指定环境变量,以便Azure Powershell任务可以运行。
您可以通过简单地为Azure PowerShell任务指定“env”来在构建管道中执行此操作:
- task: AzurePowerShell@5
  inputs:
    azureSubscription: '...'
    ScriptType: 'FilePath'
    ScriptPath: '...'
    ScriptArguments: '...'
    FailOnStandardError: true
    azurePowerShellVersion: 'LatestVersion'
  env:
    USERNAME: $(username)
    PASSWORD: $(password)

但是我没有看到在发布管道中指定"env"的任何方法:

Screenshot showing no way to add environment variables

应该如何完成这个操作?


几天没有收到您的回复了,请问您能否分享一下最新的关于这个问题的信息?如果您有任何疑虑,欢迎在这里分享。 - Hugh Lin
@HughLin-MSFT 很抱歉回复晚了。我刚回复了您下面的答案。 - user1172282
2个回答

1
当管道执行时,Azure会将所有管道变量放入环境变量中,因此构建中运行的任何工具、脚本、任务或进程都可以通过环境访问参数。
在DevOps管道GUI中定义变量:

enter image description here

在Azure PowerShell任务中获取秘密变量,只需使用$(varibaleName)语法即可。

这对我似乎不起作用。我有一个名为SERVERPASSWORD的秘密管道变量设置为发布范围。我尝试了以下测试,每次SERVERPASSWORD都为空: (1)脚本文件引用$env:SERVERPASSWORD (2)脚本文件引用$SERVERPASSWORD (3)内联脚本引用$env:SERVERPASSWORD (4)内联脚本引用$SERVERPASSWORD - user1172282
我添加了一个powershell任务,运行命令"Get-ChildItem -Path Env:",但我没有看到我的链接变量组的秘密变量或者我的管道变量。但是非秘密变量是可以显示的。 - user1172282
我测试了 $(varibaleName) 的语法,它很好用。 - Hugh Lin
@user1172282 看起来这个问题已经解决了,你也可以考虑接受这个答案。祝你有美好的一天。 :) - Hugh Lin
这个问题与这个类似的 ticket 有关。 - Hugh Lin
$(variableName) 对我也没用。 - user626528

-1

在发布管道中,我在 PowerShell 脚本中使用变量选项卡处理变量。你可以在管道变量中添加变量对,也可以在库部分创建变量组,然后将其链接。

例如,如果你为“compname computer1”创建一个变量对,则在实际的 PowerShell 脚本中引用该变量时,可以写为“get-azvm -name $env:compname”

这样就可以提取您添加的变量了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接