我试图将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)}"
可惜运气不好。
@apollo13在Nomad Gitter上找到了一种方法来延迟base64encode
的执行,使用Nomad模板进行运行时插值。他们建议使用如下格式:
template {
data = "HOST_ID={{ env "NOMAD_ADDR_ServiceA" | base64Encode }}"
env = true
destination = "secrets/env"
}
完全按照预期工作!很惊讶地看到base64encode
没有等待变量变为可用