Если вы используете Pivotal Spring Cloud Services, вы можете создать службу, используя несколько 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
просто принимает список путей/шаблонов поиска, разделенных запятыми.
Репозиторий, на который вы указали, должен иметь папки верхнего уровня с именами dev
и prod
. Затем сервер конфигурации вернет <app-name>.properties
(все остальные поддерживаемые им варианты) из папки пути поиска.
Вы можете проверить, что вы получаете данные по нескольким путям поиска, выполнив следующую команду:
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"}}]}
Надеюсь, это поможет!
person
Daniel Mikusa
schedule
20.05.2019