0

我有一个本地配置服务器,它可以与这样的 yml 配置设置一起使用吗?

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/xxx/xxxxx
          search-paths:
          - 'kenya*' 
          - 'tanzania*' 
          - 'uganda*' 
          - 'congo*'
          - 'zimbabwe*'

在我的本地项目中,我可以访问所有这些存储库,例如

http://localhost:8888/uganda/dev

这将返回正确的文件以及预期的所选配置文件广告。

但是,当我设置 Pivotal Config 服务器时,无论我在路径中添加什么参数,我都只会获得默认属性。

像这样的https://configserver.cfapps.io/uganda/dev只返回 repo 根目录的默认属性。

我该如何使用

searchPaths 在这里说明https://docs.run.pivotal.io/spring-cloud-services/config-server/configuring-with-git.html

标记添加我所有的子文件夹?

4

1 回答 1

2

如果您使用的是 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您指向的存储库应该具有名为and的顶级文件夹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>您的服务实例的客户端 ID 和密码(cf env <app>针对具有绑定 SCS 配置服务器的应用程序运行以获取这些值)。

该命令将做两件事。首先,它将使用client_idandclient_secret来获取令牌。然后在第二个请求中使用该令牌从配置服务器实际请求一些数据。

如果您从多个搜索路径获取配置,您应该会看到这样的输出(请注意如何从子文件夹devprod子文件夹中获取数据):

{"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"}}]}

希望有帮助!

于 2019-05-20T13:23:13.197 回答