YAML — Подстановка динамических значений

#yaml

Вопрос:

Я пытаюсь настроить yml, где мне нужно сделать что-то вроде приведенного ниже

 ---
en :[dev, uat]
application.url: https://domainname-appname-${en}.com:8080/someendpoint/
---

en : prod
application.url: https://domainname-appname.com/CONTEXT/someendpoint/
 

Я передаю параметр en в качестве заполнителя, используя значение параметра en в url
Мне также нужно передать порт в качестве параметра что-то вроде для каждого значения en

 en :[dev, uat]
application.url: https://domainname-appname-${en}.com:${port}/someendpoint/
 

для порта разработчика должно быть 8080
, для порта uat должно быть 9090

Есть ли какой-либо способ в YML, которым мы можем это представить, для каждого значения en нужно сопоставить порт, например, пару значений ключа карты ?

Ответ №1:

YAML не является обработчиком данных. Он ничего не может заменить, он ничего не может связать, он ничего не может сопоставить.

Тем не менее, большинство инструментов, которые читают в сложной конфигурации YAML, которая может потребовать параметризации, предоставляют вам некоторую форму шаблонов, которые вы можете использовать для настройки файла YAML перед его анализом. Однако это специфично для каждого инструмента, поэтому общего решения не будет.