【问题标题】:how to access secrets from jenkins in .scala file?如何从 .scala 文件中的詹金斯访问秘密?
【发布时间】:2019-06-29 03:07:38
【问题描述】:

我在 jenkins 作业配置中有一个秘密文本绑定变量 SECRET_TKN。我想在 .scala 文件中访问这个 var。如何在我的代码中一般访问这个 var?

我尝试了以下方法,但似乎无法正常工作:

val token =sys.env("${SECRET_TKN}")
println ("value = " +token)

控制台输出将值显示为 SOME(***) 从而导致 api 调用失败,因为我相信关键字 SOME 与实际获取的值一起出现。

另外,尝试了 sys.env("${?STG_SERVICE_TKN}") 但没有运气。

【问题讨论】:

    标签: scala jenkins configuration environment-variables


    【解决方案1】:

    sys.env 以变量名作为键,所以应该可以:

    val token = sys.env("SECRET_TKN")
    

    【讨论】:

    • 感谢您的回复。是的,它现在正在工作。我认为使用 like "${SECRET_TKN}" 是一个导致问题的错误。
    • 很高兴能帮上忙。请考虑通过单击checkmark 将我的答案标记为已接受。
    【解决方案2】:

    对于您的情况,如果 SECRET_TKN 是一个正在填充的变量,它将可以正常工作:

    val SECRET_TKN =  "SECRET_TKN"
    val token =sys.env(s"${SECRET_TKN}")
    

    最好使用sys.env.get("mySecret"),它会为您提供Option[String],而不是在缺少该变量时抛出错误。

    【讨论】:

    • 这个 SECRET_TKN 嵌入在 jenkins 中,因此它被填充。但是像这样使用没有用 sys.env("${SECRET_TKN}") 。但是只使用 `sys.env("SECRET_TKN") 可以正常工作。
    • @OBarros 我想你的意思是val token = sys.env(s"${SECRET_TKN}")(注意s在字符串之前);同样在 OP 的情况下,SECRET_TKN val 应该是 "SECRET_TKN",例如 val SECRET_TKN = "SECRET_TKN"
    猜你喜欢
    • 2023-03-09
    • 2020-12-11
    • 2020-03-30
    • 2012-09-08
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多