Nomad作业文件中的base64encode未编码变量的值
Posted
技术标签:
【中文标题】Nomad作业文件中的base64encode未编码变量的值【英文标题】:base64encode in Nomad job file not encoding value of variable 【发布时间】:2021-12-09 14:59:02 【问题描述】:我正在尝试将 base64encode
的结果存储在 env
块中,如下所示:
env
HOST_ID = "$base64encode("$NOMAD_ADDR_serviceA")"
这导致HOST_ID
持有base64 编码字符串“$NOMAD_ADDR_serviceA”,而不是我希望的NOMAD_ADDR_serviceA
的值。例如。 HOST_ID = JHtOT01BRF9BRERSX3NlcnZpY2VBfQ==
.
我也试过了:
env
HOST_ID = base64encode("$NOMAD_ADDR_serviceA")
...但这会生成相同的编码。
知道我怎样才能达到预期的结果吗?任何帮助将不胜感激!
编辑:我还尝试了以下方法:
HOST_ID = "$base64encode(NOMAD_ADDR_serviceA)"
但没有运气。
【问题讨论】:
【参考方案1】:@apollo13 在Nomad Gitter 上找到了一种方法来延迟base64encode
的执行,以便使用Nomad templates 进行运行时插值。他们建议使用类似的东西:
template
data = "HOST_ID= env \"NOMAD_ADDR_ServiceA\" | base64Encode "
env = true
destination = "secrets/env"
这完全符合预期!惊讶地发现 base64encode
不等待变量可用。
【讨论】:
以上是关于Nomad作业文件中的base64encode未编码变量的值的主要内容,如果未能解决你的问题,请参考以下文章
JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用
base64_encode 字符串的 php 大小 - 文件