Я пишу шаблон для параметризованного задания HashiCorp Nomad. Одним из его параметров является приоритет
, который должен быть целым числом от 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
Есть ли способ «преобразовать» строку в целое число? Или, в качестве альтернативы, есть ли какой-либо другой способ ссылки на переменную, который мог бы работать?
В итоге я поднял вопрос на Github. Они ответили, что пока невозможно интерполировать поле приоритета. См. Выпуск .
Похоже, это была проблема в какой-то момент , которая была исправлена, но если предположить, что вы используете самую последнюю версию, это должно сработать:
prioritystr = "${NOMAD_META_TASK_PRIORITY}"
priority = int(prioritystr)