【问题标题】:TFS Build Definition Secret VariablesTFS 构建定义秘密变量
【发布时间】:2017-09-28 12:57:42
【问题描述】:

我的构建定义中有几个秘密变量,我将它们传递给构建步骤的参数属性中的 powershell 函数,但是它们以 ******** 的形式发送而不是被解密。

我传递给 powershell 脚本调用的参数如下,其中 $(accesskey) 和 $(secretkey) 在构建定义中设置为机密:

-source "$(CodeDeploySource)" -destination "$(CodeDeployDestination)" -Description "$(Description)" -Location "$(Location)" -ApplicationName "$(ApplicationName)" -DeploymentGroup "$(DeploymentGroup)" -DeploymentConfig "$(DeploymentConfig)" -ak "$(accesskey)" -sk "$(secretkey)" -region "$(region)"

我的powershell脚本的参数部分是:

param(
[string]$source,
[string]$destination,
[string]$Description,
[string]$Location,
[string]$ApplicationName,
[string]$DeploymentGroup,
[string]$DeploymentConfig,
[string]$ak,
[string]$sk,
[string]$region
)

是否必须在 TFS 中启用配置才能在构建过程中解密秘密变量?

【问题讨论】:

    标签: powershell tfs tfsbuild


    【解决方案1】:

    您无需进行任何配置即可解密秘密变量。我已经重现了您的问题,并在构建日志中发现,它显示为 *****。实际上,在Official document 中已经提到:

    未返回给客户。它们会自动被屏蔽掉 构建或发布的任何日志输出。

    未解密为环境变量。所以脚本和程序运行 默认情况下,您的构建步骤不授予访问权限。

    所以无法从构建日志中看到。但它不会对您的构建产生影响。该值可以在 PowerShell 脚本中获取,并且可以成功使用。它只是无法输出,因为它是一个秘密变量。

    【讨论】:

    • 不错。我试图通过打印它来确保它设置正确,但没有意识到即使将它打印到输出也会掩盖它。我只是在它上面做了一个子字符串来显示它的一部分以确认它正在被传递。
    猜你喜欢
    • 2017-08-06
    • 2017-01-07
    • 2020-06-14
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 2014-05-20
    相关资源
    最近更新 更多