【问题标题】:Azure DevOps Pipeline Step print variable valueAzure DevOps Pipeline Step 打印变量值
【发布时间】:2021-10-22 08:02:12
【问题描述】:

有没有办法在管道步骤中显式打印变量的值?我所有的尝试都只显示“***”。 尝试使用 Bash、命令行和 Powershell。每个人的结果都是一样的。

第一个变量来自上一步。其他两个设置在“变量”菜单中。

编辑 1 ----------------

变量定义。未定义为秘密:

IP 地址的来源。一个 ARM 模板:

【问题讨论】:

  • 这些变量被定义为机密,因此它们不会以纯文本形式出现在日志中。有关更多解释,请参阅此线程(可能与您的问题重复)VSTS secrets as environment variables
  • 一般回答:使用 $env.Variablename 查找值(不用于机密)是发送的格式。
  • @YanSklyarenko 我没有将这些变量定义为秘密。我将使用此信息编辑帖子并检查此潜在重复项。
  • @user2670623 我会试试的。
  • @YanSklyarenko 我调查了潜在的重复项,我认为这有点不同,因为我的变量没有被定义为秘密。 IP 变量来自部署输出。

标签: azure-devops azure-pipelines


【解决方案1】:

DevOps 不会在日志中输出定义为“Secret”的变量。

您必须按照此处所述绕道:Get Azure Devops Secret Variable as Plain Text using Powershell

但是:如果您想在管道日志中输出“秘密”,那么您不需要将变量定义为秘密,但您可以使用纯文本(最简单的解决方案,截图)。

但是,我建议您设置一个 KeyVault,将机密存储在其中,并在日志中包含一个指向该机密的链接,以便用户在部署后通过该链接检索访问数据。

关于 IP: 如果您在管道内定义一个变量(如使用 IP),您必须确保您不使用“issecret” echo "##vso[task.setvariable variable=secretVariable;issecret=true] ..."。

Microsoft - SetVariable: Initialize or modify the value of a variable

【讨论】:

  • 我没有将这些变量定义为 Secret。我正在使用此信息编辑帖子。关于 IP,它来自上一步,来自部署输出。我也会把这个放在帖子里。
【解决方案2】:

我发现了“问题”。我不知道为什么,但第三步(将 ARM 部署输出解析为变量)是对变量执行此操作。

删除它后,值按预期显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 2021-02-15
    • 2021-07-29
    • 1970-01-01
    • 2021-07-28
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多