System.getenv()返回VCAP_SERVICES:" ******"

时间:2015-11-20 13:32:32

标签: cloudfoundry

System.getenv()正在使用VCAP_SERVICES : "******"返回json。我的云代工厂java spring-boot app必然会有三项服务。如果我在CLI中提供cf env app_name,它会正确返回所有绑定服务。此外,VCAP_APPLICATION和返回的json中的其他字段也很好。

一点背景: 我需要获取绑定到我的应用程序的所有服务的服务名称,标签和计划。我是云代工厂和Spring-boot的新手,所以我不知道如何在我的代码中使用spring cloud连接器。

2 个答案:

答案 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