我正在为参数化的 HashiCorp Nomad 作业编写模板。它的一个参数是priority
,它应该是 0 到 100 之间的整数。
与其他工具一样,Nomad 支持变量插值,这样就可以在某个时候定义变量并在以后引用。Nomad 还允许定义“元”变量,这些变量在运行时传递并可在 HLC 文件中使用。
我想要做的事情如下:
job "my-job" {
parametrized {
meta_required = ["TASK_PRIORITY"]
}
priority = "${NOMAD_META_TASK_PRIORITY}"
...
}
我发现读取这些变量的唯一方法是在字符串中。由于priority
节需要一个整数,因此会引发以下错误:
error parsing 'job': 1 error(s) decoding: * cannot parse 'Priority' as int: strconv.ParseInt: parsing "${NOMAD_META_TASK_PRIORITY}": invalid syntax
有什么方法可以将字符串“强制”转换为整数吗?或者,还有其他可行的引用变量的方法吗?
答案1
这似乎某个时候的问题该问题已修复,但假设您使用的是最新版本,则应该可以正常工作:
prioritystr = "${NOMAD_META_TASK_PRIORITY}"
priority = int(prioritystr)
答案2
我最终在 Github 上提出了一个问题。他们的回复是,目前还无法插入优先级字段。查看问题。