PCF UPS在属性文件中

时间:2018-06-18 13:24:53

标签: spring-boot jenkins-pipeline pivotal-cloud-foundry

我有一个弹簧启动应用程序,它是通过jenkins管道构建的,并部署到关键的云代工厂。假设我有一个属性(application.properties)文件,其中包含以下值:

local.properties

并在代码中的某个地方引用该属性。这是为了建立与环境无关的构建。

我想要做的是通过PCF上的用户提供的服务将其公开为VCAP,以便属性文件变为:

API_URL = http://API_URL/

我在pcf上运行cups命令并将服务绑定到我的应用程序,但是当通过jenkins管道提供属性文件时,它会错误地抱怨它无法解析上面提到的值。我还在manifest.yml文件中包含绑定。人们已经说过,spring boot支持vcap值的解析,但是我无法实现这一点。对我做错了什么的想法?

1 个答案:

答案 0 :(得分:0)

此处描述了Spring Boot的自动功能。

https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/api/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.html

它基本上将采用VCAP_SERVICES环境变量并将其展平。它在vcap.services.*下公开,下一位是服务实例名称,后跟您在服务实例下公开的属性。

如果您遇到问题,我建议启用Spring Boot Actuator。它具有可以转储属性的端点。您可以使用它来确认它们是否可用,并查看确切的名称,因为有时可能很难获得完全正确的属性名称。

对于它的价值,如果你只有一个属性并且它不敏感,你可以考虑通过env变量传递它。由于Spring Boot如何自动将env变量映射到属性中,因此它更容易使用。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

希望有所帮助!