簡體   English   中英

Java中Cloudfoundry VCAP_SERVICE的包裝器?

[英]Wrapper(s) for Cloudfoundry VCAP_SERVICE in Java?

使用VCAP_SERVICE 環境變量 (java.lang.System.getenv("VCAP_SERVICES")需要處理一個JSON字符串,它可能具有非常精細的結構 - 但遵循可預測的模式。

是否有一個常用的助手類,它進行JSON解析以便於訪問變量? (我知道如何解析原始的JSON,所以我正在尋找一個特定的CF,可以幫助讀取變量。)

我發現一個項目在3年內沒有更新 - 是要使用的庫嗎? 或者會使用CF Client lib嗎?

理想情況下它會是這樣的:

   VCapService config = new VCapService();
   String somevar = config.get("/user-provided/special/test","default-if-no-cloud");

我對查詢並不挑剔(上面有點像URI或XPath)。

您可以使用Spring Cloud Connectors: https//github.com/spring-cloud/spring-cloud-connectors

盡管名稱如此,核心Spring Cloud Connectors庫並不依賴於Spring Framework,而是一個普通的舊Java庫。 請參閱此處的文檔,了解如何使用庫的核心來獲取從VCAP_SERVICES解析的對象模型: https//github.com/spring-cloud/spring-cloud-connectors/tree/master/spring-cloud-core#spring-雲核心

您不必將應用程序開發為依賴於Cloud Foundry(例如在應用程序中包裝和轉換VCAP_SERVICES)。 相反,您可以在啟動應用程序之前解析VCAP_SERVICES,並將其轉換為更易於閱讀的環境變量。 下面是一個使用名為jq (命令行JSON處理器)的工具的示例:

MNG=$(echo $VCAP_SERVICES | jq '.mongodb[0].credentials.uri')
export MONGO_URL=$(echo $MNG | cut -d "\"" -f 2)

在應用程序啟動之前,您可以將這兩個襯管放在啟動腳本中,它會將VCAP_SERVICES轉換為“輕”且易消化的環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM