Если вы используете облачные службы Pivotal Spring, вы можете создать службу, используя несколько searchPaths
, например:
cf create-service -c '{ "git": { "uri": "https://github.com/dmikusa-pivotal/cook-config.git", "label": "search-paths", "searchPaths": "dev,prod" } }' cook-config-server
Аргумент searchPaths
просто принимает список путей поиска, разделенных запятыми /pattern.
В указанном вами хранилище должны быть папки верхнего уровня с именами dev
и prod
.Сервер конфигурации затем вернет <app-name>.properties
(все остальные варианты, которые он поддерживает) из папки пути поиска.
Вы можете проверить, что вы получаете данные с несколькими путями поиска, выполнив такую команду, какthis:
curl -k -H "Authorization: bearer $(curl -k -s -X POST 'https://p-spring-cloud-services.uaa.<system_domain>/oauth/token' -d 'grant_type=client_credentials&client_id=<insert client id>&client_secret=<insert client_secret>' | jq .access_token | cut -d '"' -f 2)" <insert uri>/cook/prod
Вам необходимо заменить <system_domain>
системным доменом для своего фундамента, <insert client id>
и <insert client secret>
на идентификатор клиента и секретный ключ вашего экземпляра службы (запустите cf env <app>
для приложения, котороеимеет связанный сервер конфигурации SCS для получения этих значений).
Эта команда будет выполнять две вещи.Во-первых, он будет использовать client_id
и client_secret
для получения токена.Затем токен используется во втором запросе для фактического запроса некоторых данных с сервера конфигурации.
Вы должны увидеть вывод, подобный этому, если вы получаете конфигурацию из нескольких путей поиска (обратите внимание, что есть данные из dev
и prod
подпапки):
{"name":"cook","profiles":["prod"],"label":null,"version":"5d5a3f26022dd00becdbad855c7d27ae530685f7","state":null,"propertySources":[{"name":"https://github.com/dmikusa-pivotal/cook-config.git/prod/cook.properties","source":{"cook.special":"Prod Config"}},{"name":"https://github.com/dmikusa-pivotal/cook-config.git/dev/cook.properties","source":{"cook.special":"Dev Config"}},{"name":"https://github.com/dmikusa-pivotal/cook-config.git/cook.properties","source":{"cook.special":"Not in Folder config"}}]}
Надеюсь, это поможет!