объединить два значения из файла yaml в глобальной конфигурации в mule 4

Мне нужно динамически установить заполнитель свойства из среды выполнения. Я настраиваю $ {mule.env} во время выполнения, но когда я пытаюсь добавить это в заполнитель, я получаю сообщение об ошибке, что значение не найдено, и ошибку в $ {mule.env} _ $ {secure: : sfdc.token.host}. Как я могу добавить $ {mule.env} в $ {secure :: sfdc.token.host}, чтобы он принимал правильное значение конфигурации. Ниже я добавил свою конфигурацию запроса и YAML.

    <http:request-config name="HTTP_Request_configuration-token" doc:name="HTTP Request configuration" doc:id="411c1d32-df92-44da-87d9-cca02e851db7" basePath="${mule.env}_${secure::sfdc.token.base_path}">
    <http:request-connection host="${mule.env}_${secure::sfdc.token.host}" />
    </http:request-config> 

yaml:

       uat_sfdc:
         token:
            base_path: "/services/uat"
            host: "0.0.0.0"
       prod_sfdc:
         token:
            base_path: "/services/prod"
            host: "0.0.0.0"

person Devendra    schedule 16.04.2020    source источник


Ответы (1)


Лучше всего разместить ваши yaml-файлы в каталоге, принадлежащем одной среде. Например, /var/mule/DEV/app1/global.yaml, /var/mule/TEST/app1/global.yaml, /var/mule/PROD/app1/global.yaml и используйте переменную mule.env для выбора окружения. Таким образом, путь к файлу конфигурации будет /var/mule/${mule.env}/app1/global.yaml

В этом случае вам не нужна логика внутри приложения для поиска свойств и, что более важно, ваш DEV не знает о PROD и не может случайно повредить данные PDOD.

Прочтите о возможностях здесь https://simpleflatservice.com/mule4/Properties.html

person Alex    schedule 16.04.2020
comment
это решение я делал, но требования были изменены, и мне нужно настроить все в одном yaml. Пожалуйста, дайте мне знать, как мы можем это сделать. - person Devendra; 16.04.2020
comment
Вы можете сделать p ('$ {mule.env} .toke.host'}) или что-то [$ {mule.env}]. Somethingelse.host или что-то подобное. Или просто установите переменную env с помощью p ('$ {mule.env}'), а затем используйте ее как обычно env.token.host - person Alex; 17.04.2020