Nomad 作业文件中的 base64encode 不是变量的编码值
base64encode in Nomad job file not encoding value of variable
我正在尝试将 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 over on the Nomad Gitter figured out a way to delay the execution of base64encode
for runtime interpolation using Nomad templates。他们建议使用类似的东西:
template {
data = "HOST_ID={{ env \"NOMAD_ADDR_ServiceA\" | base64Encode }}"
env = true
destination = "secrets/env"
}
这完全符合预期!惊讶地看到 base64encode
没有等待变量可用。
我正在尝试将 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 over on the Nomad Gitter figured out a way to delay the execution of base64encode
for runtime interpolation using Nomad templates。他们建议使用类似的东西:
template {
data = "HOST_ID={{ env \"NOMAD_ADDR_ServiceA\" | base64Encode }}"
env = true
destination = "secrets/env"
}
这完全符合预期!惊讶地看到 base64encode
没有等待变量可用。