【问题标题】:Connect to PCF Cloud Config Server Service remotely远程连接到 PCF 云配置服务器服务
【发布时间】:2019-06-16 11:35:33
【问题描述】:

我在 PCF 中创建了一个 PCF 配置服务器服务。当我部署充当 Config 服务客户端的 springboot 应用程序,部署到 PCF 并将其绑定到 Config 服务器服务时,它会无缝拉取配置,一切都很好。

我的问题是,从我的笔记本电脑本地运行应用程序时,我无法从我的 springboot 应用程序连接到 PCF 配置服务器。

根据各种文档,我为我的配置服务器服务创建了服务密钥,并修改了我的 bootstrap.yml,如下所示。

我收到 401 未经授权的错误。 INFO 22180 --- [main] c.c.c.ConfigServicePropertySourceLocator:从服务器获取配置:https://config-8660fe8f-2b6b-4171-bd7f-36f3a60ec48a.apps.pcfepg2wi.gm.com WARN 22180 --- [main] c.c.c.ConfigServicePropertySourceLocator:找不到 PropertySource:401 Unauthorized INFO 22180 --- [main] com.gm.mms.extfile.Application:tartupProfileInfo - 以下配置文件处于活动状态:dev

spring:
  application:
    name: external-file-service
  profiles:
    active: dev
  cloud:
    config:
      uri: https://config-8660fe8f-2b6b-4171-bd7f- 
36f3a60ec48a.apps.pcfepg2wi.gm.com
      username: <username-here>
      password: <password-here>
      client_secret: RwKMmAhOzuz8
      client_id: p-config-server-ebcd8a29-2615-4924-88bb-b4188d50d2b5
      access_token_uri: https://p-spring-cloud- 
 services.uaa.sys.pcfepg2wi.gm.com/oauth/token
      label: develop

security:
  basic:
    enabled: false

【问题讨论】:

  • 您连接 PCF 配置服务器的目的是什么?为什么不能在本地启动配置服务器并将应用绑定到本地配置服务器?
  • 连接PCF配置服务器的目的是从git中拉取application.yml配置。当我已经将配置服务器作为 PCF 服务时,为什么我应该在本地旋转(编码)配置服务器?
  • 在本地启动一个配置服务器非常简单(下载一个 spring boot 应用程序,在 main 方法中保留 @EnableConfigServer 注释,将你的 git-repo 指向 bootstrap.yml .. 现在你已经准备好了.. 这样您就可以轻松地在本地测试您的应用程序,并且也有利于您的Junit 测试用例...我真的没有看到任何应用程序团队/锚从位于数据中心的服务器中提取他们的配置来测试它本地..你可以,但我真的找不到任何好处
  • 这是您在尝试从本地连接 PCF 市场服务时会看到的非常常见的问题,而且大多数情况下是因为防火墙规则。请与您的 PCF 团队确认他们是否已从 PCF 基金会外部禁用连接。
  • @Arun - 感谢您的洞察力。我会追求那个解决方案。你可能是对的..我进行了广泛的搜索,但找不到任何人按照我的方式尝试。

标签: spring-boot cloud-foundry spring-cloud-config


【解决方案1】:

注意:不确定您是否可以从本地连接任何 PCF 市场服务 如果防火墙规则设置为禁用外部连接。

如果没有连接问题,那么您应该能够使用以下解决方法连接它(为我工作)

在您的 Spring Boot 应用配置中添加以下环境变量

  1. TRUST_CERT - 您的 PCF 基础网址
  2. VCAP_APPLICATION - VCAP_APPLICATION JSON 压缩格式*(您可以在PCF 应用程序Environment Variables 下的application_env_json 下获取此json)
  3. VCAP_SERVICES - VCAP_SERVICES JSON 压缩格式*(您可以在PCF 应用程序Environment Variables 下system_env_json 下获取此json)

您可以使用this网站格式化JSON数据[选择Compact JSON模板]

【讨论】:

  • 你的 bootstrap.yml 看起来怎么样?
  • bootstrap.yml 中只需要应用程序名称在您的情况下:spring: application: external-file-service
  • @Khan379 太棒了.. (y)
  • @Avhi 它还会处理生成令牌和身份验证吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2012-03-03
相关资源
最近更新 更多