System.getenv()
正在使用VCAP_SERVICES : "******"
返回json。我的云代工厂java spring-boot app必然会有三项服务。如果我在CLI中提供cf env app_name
,它会正确返回所有绑定服务。此外,VCAP_APPLICATION
和返回的json中的其他字段也很好。
一点背景: 我需要获取绑定到我的应用程序的所有服务的服务名称,标签和计划。我是云代工厂和Spring-boot的新手,所以我不知道如何在我的代码中使用spring cloud连接器。
答案 0 :(得分:0)
VCAP_SERVICES
环境变量中的值将是您需要解析的JSON字符串,它将为您提供一个描述所有绑定服务的对象,包括名称,标签和计划等数据。如果您使用Google“vcap服务”或“云代工厂环境变量”,则第一个结果为this doc,并且它具有section on VCAP_SERVICES
。下面是他们提供的这个JSON对象的示例(解析后):
{
"elephantsql": [
{
"name": "elephantsql-c6c60",
"label": "elephantsql",
"tags": [
"postgres",
"postgresql",
"relational"
],
"plan": "turtle",
"credentials": {
"uri": "postgres://seilbmbd:ABcdEF@babar.elephantsql.com:5432/seilbmbd"
}
}
],
"sendgrid": [
{
"name": "mysendgrid",
"label": "sendgrid",
"tags": [
"smtp"
],
"plan": "free",
"credentials": {
"hostname": "smtp.sendgrid.net",
"username": "QvsXMbJ3rK",
"password": "HCHMOYluTv"
}
}
]
}
答案 1 :(得分:0)
正如您建议想要尝试在您的代码中访问此信息,您应该考虑使用云代工厂java客户端,这里有一个很好的介绍,它很容易启动和运行。我发现api有点受限但值得关注 - http://docs.cloudfoundry.org/buildpacks/java/java-client.html