【问题标题】:System.getenv() returning VCAP_SERVICES : "******"System.getenv() 返回 VCAP_SERVICES : "******"
【发布时间】:2015-11-20 13:32:32
【问题描述】:

System.getenv() 正在返回带有 VCAP_SERVICES : "******" 的 json。我的 cloud Foundry java spring-boot 应用绑定了三个服务。如果我在 CLI 中给出cf env app_name,它会正确返回所有绑定的服务。除了这个之外,VCAP_APPLICATION 和返回的 json 中的其他字段也很好。

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

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    VCAP_SERVICES 环境变量中的值将是您需要解析的 JSON 字符串,它将为您提供一个描述所有绑定服务的对象,包括名称、标签和计划等数据。如果你用谷歌搜索“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"
          }
        }
      ]
    }
    

    【讨论】:

      【解决方案2】:

      正如您所建议的,想要尝试在您的代码中访问此信息,您应该考虑使用 Cloud Foundry Java 客户端,这里有很好的介绍,而且它真的很容易启动和运行。我发现 api 有点有限,但值得一看 - http://docs.cloudfoundry.org/buildpacks/java/java-client.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-16
        • 1970-01-01
        • 2012-11-03
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-29
        相关资源
        最近更新 更多