Spring Cloud Config Server Приоритет переменных среды
У меня есть вопрос относительно приоритета переменных среды при работе свесенний облачный конфиг-сервер
В моем сервисе у меня есть локальный файл свойствapplication.yml
с этим содержанием
foo:
bar: "some"
buz: "some"
joe: "some"
Служба также подключена к серверу конфигурации с хранилищем конфигурации, которое содержит файлtestservice-api.yml
(гдеtestservice-api
это имя приложения службы весны). Содержимое этого файла:
foo:
bar: "some-specific"
Таким образом, при такой настройке конфигурация во время выполнения приведет к следующему:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some"
}
Сейчас я пытаюсь переопределитьfoo.bar
а такжеfoo.joe
с переменной среды.
Поэтому я запускаю службу с помощью этой команды:
FOO_BAR=some-env FOO_JOE=some-env gradle bootRun
Из того, что я прочитал вэта часть весенней загрузки документации переменные окружения должны иметь приоритет над файлами конфигурации - также в документации конфигурации весеннего облака не указано иное - поэтому я ожидаю, что результатом будет:
{
"foo.bar": "some-env",
"foo.buz": "some",
"foo.joe": "some-env"
}
Но вместо этого я получаю:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some-env"
}
Таким образом, переменная окружения переопределяет только конфигурацию из локального файла конфигурации внутри jar-файла - кажется, что свойство из репозитория config имеет приоритет над переменной среды.
Это объяснимо - или это ошибка? Любые намеки в этом?
Пожалуйста, найдите пример кода здесь:
https://github.com/mduesterhoeft/configserver-test
README в репозитории перечисляет проблему, описанную здесь какВариант использования 3